[javascript]代码库
<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>
[代码运行效果截图]
初级程序员
by: 程序猿M 发表于:2012-11-17 17:59:35 顶(1) | 踩(0) 回复
怎么我的总是显示的是方块,路径也对啊
网友回复
回复小蜜锋 : 看最后那几行使用方法: createSnow('...........', 60);//修改为自己的雪花图片存放目录,文件形式为snow1.gif snow2.gif ......
顶(0) 踩(0) 2012-11-21 12:48:00
小蜜锋 : 例如:createSnow('./image', 60); //image文件夹里放着snow1.gif snow2.gif...等文件
顶(0) 踩(0) 2012-11-21 12:51:05
回复评论