javascript 下雪效果 特效

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
<html>
<head>
<script type="text/javascript">
(function() {
	function j(a, b, c) {
		if (a.addEventListener) a.addEventListener(b, c, false);
		else a.attachEvent && a.attachEvent("on" + b, c)
	}
	function f(a) {
		if (typeof window.onload != "function") window.onload = a;
		else {
			var b = window.onload;
			window.onload = function() {
				b();
				a()
			}
		}
	}
	function g() {
		var a = {};
		for (type in {
			Top: "",
			Left: ""
		}) {
			var b = type == "Top" ? "Y": "X";
			if (typeof window["page" + b + "Offset"] != "undefined") a[type.toLowerCase()] = window["page" + b + "Offset"];
			else {
				b = document.documentElement.clientHeight ? document.documentElement: document.body;
				a[type.toLowerCase()] = b["scroll" + type]
			}
		}
		return a
	}
	function k() {
		var a = document.body,
		b;
		if (window.innerHeight) b = window.innerHeight;
		else if (a.parentElement.clientHeight) b = a.parentElement.clientHeight;
		else if (a && a.clientHeight) b = a.clientHeight;
		return b
	}
	function h(a) {
		this.parent = document.body;
		this.createEl(this.parent, a);
		this.size = Math.random() * 5 + 5;
		this.el.style.width = Math.round(this.size) + "px";
		this.el.style.height = Math.round(this.size) + "px";
		this.maxLeft = document.body.offsetWidth - this.size;
		this.maxTop = document.body.offsetHeight - this.size;
		this.left = Math.random() * this.maxLeft;
		this.top = g().top + 1;
		this.angle = 1.4 + 0.2 * Math.random();
		this.minAngle = 1.4;
		this.maxAngle = 1.6;
		this.angleDelta = 0.01 * Math.random();
		this.speed = 2 + Math.random()
	}
	var i = false;
	f(function() {
		i = true
	});
	window.createSnow = function(a, b) {
		if (i) {
			var c = [];
			setInterval(function() {
				b > c.length && Math.random() < b * 0.0025 && c.push(new h(a));
				for (var e = g().top, l = k(), d = c.length - 1; d >= 0; d--) if (c[d]) if (c[d].top < e || c[d].top > e + l) {
					c[d].remove();
					c.splice(d, 1)
				} else {
					c[d].move();
					c[d].draw()
				}
			},
			40);
			j(window, "scroll",
			function() {
				for (var e = c.length - 1; e >= 0; e--) c[e].draw()
			})
		} else f(function() {
			createSnow(a, b)
		})
	};
	h.prototype = {
		createEl: function(a, b) {
			this.el = document.createElement("img");
			this.el.setAttribute("src", b + "snow" + Math.floor(Math.random() * 4) + ".gif");
			this.el.style.position = "absolute";
			this.el.style.display = "block";
			this.el.style.zIndex = "99999";
			this.parent.appendChild(this.el)
		},
		move: function() {
			if (this.angle < this.minAngle || this.angle > this.maxAngle) this.angleDelta = -this.angleDelta;
			this.angle += this.angleDelta;
			this.left += this.speed * Math.cos(this.angle * Math.PI);
			this.top -= this.speed * Math.sin(this.angle * Math.PI);
			if (this.top < 0) this.top = this.maxTop;
			else if (this.top > this.maxTop) this.top = 0;
			if (this.left < 0) this.left = this.maxLeft;
			else if (this.left > this.maxLeft) this.left = 0
		},
		draw: function() {
			this.el.style.top = Math.round(this.top) + "px";
			this.el.style.left = Math.round(this.left) + "px"
		},
		remove: function() {
			this.parent.removeChild(this.el)
		}
	}
})();
</script>
</head>

<body bgcolor="#999999">
<script>
//使用方法
createSnow('...........', 60);//修改为自己的雪花图片存放目录,文件形式为snow1.gif  snow2.gif ......
</script>
</body>
</html>

标签: isp

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:jpg图像文件缩放Java类(按指定比例缩放,按指定宽高缩放)

下一篇:将CSV文件导进MySQL表格的Java示例