User:Mattman243/js/snow.js
From Guild Wars Wiki
Jump to navigationJump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
function initsnow() { // Set the number of snowflakes (more than 30 - 40 not recommended) var snowmax=35; // Set the colors for the snow. Add as many colors as you like var snowcolor=new Array('#FFFFFF','#CCFFCC','#FFCCCC'); // Set the fonts, that create the snowflakes. Add as many fonts as you like var snowtype=new Array('Arial Black','Arial Narrow','Times','Comic Sans MS'); // Set the letter that creates your snowflake (recommended: * ) var snowletter='*'; // Set the speed of sinking (recommended values range from 0.3 to 2) var sinkspeed=0.4; // Set the maximum-size of your snowflakes var snowmaxsize=22; // Set the minimal-size of your snowflakes var snowminsize=8; /* * NO CONFIGURATION BELOW HERE */ // Do not edit below this line var snow = []; var marginbottom; var marginright; var snow_timer; var i_snow = 0; var x_mv = []; var crds = []; var lftrght = []; var snowspans = ''; var browserinfos = navigator.userAgent; var ie5 = document.all && document.getElementById && !browserinfos.match(/Opera/); var ns6 = document.getElementById && !document.all; var opera = browserinfos.match(/Opera/); var browserok = ie5 || ns6 || opera; function randommaker(range) { return Math.floor(range*Math.random()); }; for( var i=0; i<=snowmax; i++ ) snowspans += ('<span id="s'+ i +'" style="position:absolute; top:-'+ snowmaxsize +'; left:0;">'+ snowletter +'</span>'); document.body.innerHTML += snowspans; if (ie5 || opera) { marginbottom = document.body.clientHeight; marginright = document.body.clientWidth - 10; } else if (ns6) { marginbottom = window.innerHeight; marginright = window.innerWidth - 10; } var snowsizerange = snowmaxsize - snowminsize; for (var i=0;i<=snowmax;i++) { crds[i] = 0; lftrght[i] = Math.random()*15; x_mv[i] = 0.03 + Math.random()/10; snow[i] = document.getElementById('s'+i); snow[i].style.fontFamily = snowtype[randommaker(snowtype.length)]; snow[i].size = randommaker(snowsizerange)+snowminsize; snow[i].style.fontSize = snow[i].size; snow[i].style.color = snowcolor[randommaker(snowcolor.length)]; snow[i].sink = sinkspeed*snow[i].size/5; snow[i].posx = randommaker(marginright-snow[i].size); snow[i].posy = randommaker(2*marginbottom-marginbottom-2*snow[i].size); snow[i].style.left = snow[i].posx+'px'; snow[i].style.top = snow[i].posy+'px'; } function movesnow() { for (var i=0;i<=snowmax;i++) { crds[i] += x_mv[i]; snow[i].posy += snow[i].sink; snow[i].style.left = snow[i].posx + ( lftrght[i] * Math.sin(crds[i]) ) +'px'; snow[i].style.top = snow[i].posy +'px'; if (snow[i].posy >= marginbottom - 4 * snow[i].size || parseInt(snow[i].style.left) > (marginright - 3 * lftrght[i])) { snow[i].posx = randommaker(marginright-snow[i].size); snow[i].posy = 0; } } }; snow_timer = setInterval(movesnow,50); }; if( window.addLoadEvent ) { // no need to add it... } else { function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } }; } addLoadEvent(initsnow);