Новый скрипт падающего снега.
Принципиальное отличие от остальных в том, что в нем не используются картинки для формирования снежинок, что ускоряет его работу и снег больше похож на настоящий
Ставить можно и вверх и вниз и в объявление, без разницы.
<script language=JavaScript> if ((document.getElementById) && window.addEventListener || window.attachEvent) {(function() { var num = 30; // Количество снежинок var timer = 30; // Скорость падения var enableinNS6 = 1; var y = []; var x = []; var fall = []; var theFlakes = []; var sfs = []; var step = []; var currStep = []; var h,w,r; var d = document; var pix = "px"; var domWw = (typeof window.innerWidth == "number"); var domSy = (typeof window.pageYOffset == "number"); var idx = d.getElementsByTagName('div').length; for (i = 0; i < num; i++) { sfs[i] = Math.round(1 + Math.random() * 1); document.write('<div id="flake'+(idx+i)+'" style="position:absolute;top:0px;left:0px;width:'+sfs[i]+'px;height:'+sfs[i]+'px;background-color:#ffffff;font-size:'+sfs[i]+'px"></div>'); currStep[i] = 0; fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2); step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05; } if (domWw) r = window; else { if (d.documentElement && typeof d.documentElement.clientWidth == "number" && d.documentElement.clientWidth != 0) r = d.documentElement; else { if (d.body && typeof d.body.clientWidth == "number") r = d.body; } } function winsize() { var oh,sy,ow,sx,rh,rw; if (domWw) { if (d.documentElement && d.defaultView && typeof d.defaultView.scrollMaxY == "number") { oh = d.documentElement.offsetHeight; sy = d.defaultView.scrollMaxY; ow = d.documentElement.offsetWidth; sx = d.defaultView.scrollMaxX; rh = oh-sy; rw = ow-sx; } else { rh = r.innerHeight; rw = r.innerWidth; } h = rh - 2; w = rw - 2; } else{ h = r.clientHeight - 2; w = r.clientWidth - 2; } } function scrl(yx) { var y,x; if (domSy) { y = r.pageYOffset; x = r.pageXOffset; } else { y = r.scrollTop; x = r.scrollLeft; } return (yx == 0)?y:x; } function snow() { var dy,dx; for (i = 0; i < num; i++) { dy = fall[i]; dx = fall[i] * Math.cos(currStep[i]); y[i]+=dy; x[i]+=dx; if (x[i] >= w || y[i] >= h) { y[i] = -10; x[i] = Math.round(Math.random() * w); fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2); step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ; } theFlakes[i].top = y[i] + scrl(0) + pix; theFlakes[i].left = x[i] + scrl(1) + pix; currStep[i]+=step[i]; } setTimeout(snow,timer); } function init() { winsize(); for (i = 0; i < num; i++) { theFlakes[i] = document.getElementById("flake"+(idx+i)).style; y[i] = Math.round(Math.random()*h); x[i] = Math.round(Math.random()*w); } snow(); } if (window.addEventListener) { window.addEventListener("resize",winsize,false); window.addEventListener("load",init,false); } else if (window.attachEvent) { window.attachEvent("onresize",winsize); window.attachEvent("onload",init); } })(); } </script>
Пробуйте)))