falling-snow with Brown movement" working with DOM
Flakes fall with approach and Brown movement.
by spmbt
HTML
<button>toggle falling</button> falling-snow.js with flakes approaching
<!-- script works with DOM layers: symbols or images as flakes -->
CSS
body{overflow-y: hidden; color: rgba(120,120,120,.6)}
button{background-color: #f8f8f8; border-radius: 5px; border-width: 1px; color: #888}
JavaScript
// checked in IE6,FF1.06,Opera7.54,Opera9.01
// Snowmaker (c) 2003 Peter Gehrig
// Modified (c) 2005, Igor Svetlov, Nickname: 12345c
var snowmax = 25; // Set the number of snowflakes (more than 30 - 40 not recommended)
var snowcolor = ["#c4bbcc","#ccddFF","#ccd6DD"];
// Set the colors for the snow. Add as many colors as you like
var snowtype = ["Arial Black","Arial Narrow","Times","Comic Sans MS"];
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowletter = ["✺","❅",/*"<img src=i/snow.gif>","<img src=i/snow21.gif>"*/];
// Set the letter that creates your snowflake (recommended:*)
var sinkspeed = .46; // Set the speed of sinking (recommended values range from 0.3 to 2)
var snowmaxsize = 45; // Set the maximal-size of your snowflaxes
var snowminsize = 22; // Set the minimal-size of your snowflaxes
var snowingleft = 0.1; //левая граница присутствия снега
var snowingwidth = 0.8; //ширина присутствия снега в окне
var opac = 1; //непрозрачность снега (0.0-1.0), при 1.0 в 2 раза быстрее работает.
var stepTime = 60; //шаг покадровой анимации (мсек). При менее 100 сильно нагружает процессор
var stepIncrease = 1.032; //рост размеров с каждым шагом. Рез. зав.от sinkspeed,snowmaxsize,stepTime
var snow = [];
var marginbottom;
var marginright;
var x_mv = []; var crds = []; var lftrght = [];
var browserinfos = navigator.userAgent;
d = document;
var isOpera = self.opera;
var ie5 = d.all&&d.getElementById&&!isOpera;
var ns6 = d.getElementById&&!d.all;
var opera9 = isOpera && parseFloat(navigator.appVersion) >=9;
var browserok = ie5||ns6||isOpera;
var ww = 0;
var timer = 0;
var snowmaxOld = 0;
function createSnow(){
for(i =0; i < Math.max(snowmax, snowmaxOld); i++){ if(i < snowmax){
var o = d.createElement('SPAN');
if(d.getElementById('s'+ i)){ snowZone.replaceChild(o, d.getElementById('s'+ i));}
else{snowZone.appendChild(o);}
o.setAttribute('id','s'+ i);
o.style.position ='absolute';
o.style.top = -snowmaxsize +'px';
if(ns6)...