98 lines
3.4 KiB
JavaScript
98 lines
3.4 KiB
JavaScript
// Anzahl der Schneeflocken (mehr als 30 - 40 nicht empfehlenswert)
|
|
var snowmax=40;
|
|
|
|
// Farben der Schneeflocken. Es können beliebig viele Farben angegeben werden
|
|
var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF");
|
|
|
|
// Fonts, welche die Schneeflocken erzeugen. Beliebig viele Fonts ergänzbar
|
|
var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS");
|
|
|
|
// Zeichen für die Schneeflocke (empfohlen: * )
|
|
var snowletter="●";
|
|
|
|
// Fallgeschwindigkeit (empfohlen sind Werte zwischen 0.3 bis 2)
|
|
var sinkspeed=0.6;
|
|
|
|
// Maximale Größe der Schneeflocken
|
|
var snowmaxsize=22;
|
|
|
|
// Minimale Größe der Schneeflocken
|
|
var snowminsize=8;
|
|
|
|
/* Schnee-Zone:
|
|
** 1 für überall, 2 für Schneefall nur auf der linken Seite
|
|
** 3 für Schneefall in der Mitte, 4 für Schneefall nur auf der rechten Seite */
|
|
var snowingzone=1;
|
|
|
|
/*
|
|
* Ab hier nichts mehr ändern *
|
|
*/
|
|
|
|
var snow=new Array();
|
|
var marginbottom;
|
|
var marginright;
|
|
var timer;
|
|
var i_snow=0;
|
|
var x_mv=new Array();
|
|
var crds=new Array();
|
|
var lftrght=new Array();
|
|
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) {
|
|
rand=Math.floor(range*Math.random());
|
|
return rand;
|
|
}
|
|
|
|
function initsnow() {
|
|
marginright = window.innerWidth;
|
|
marginbottom = window.innerHeight;
|
|
var snowsizerange=snowmaxsize-snowminsize;
|
|
for (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+"px";
|
|
snow[i].style.color=snowcolor[randommaker(snowcolor.length)];
|
|
snow[i].sink=sinkspeed*snow[i].size/5;
|
|
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size);}
|
|
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size);}
|
|
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4;}
|
|
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2;}
|
|
snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size);
|
|
snow[i].style.left=snow[i].posx;
|
|
snow[i].style.top=snow[i].posy;
|
|
}
|
|
movesnow();
|
|
}
|
|
|
|
function movesnow() {
|
|
marginright = window.innerWidth;
|
|
marginbottom = window.innerHeight
|
|
$("#kstart").html(marginbottom);
|
|
for (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-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
|
|
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size);}
|
|
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size);}
|
|
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4;}
|
|
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2;}
|
|
snow[i].posy=0;
|
|
}
|
|
}
|
|
var timer=setTimeout("movesnow()",50);
|
|
}
|
|
|
|
for (i=0;i<=snowmax;i++) {
|
|
document.write("<span id='s"+i+"' style='position:fixed;top:-"+snowmaxsize+"px;'>"+snowletter+"</span>");
|
|
} |