Hallo!
Ich verwende folgenden Quellcode als Schneeflocken-Skript:
Code
<SCRIPT>
Amount=22; //Smoothness! depends on image file size, the smaller the size the more you can use!
//Pre-load your image below!
Image0=new Image();
Image0.src="XMas/flake1.gif";
Image1=new Image();
Image1.src="XMas/flake2.gif";
Image2=new Image();
Image2.src="XMas/flake3.gif";
Image3=new Image();
Image3.src="XMas/flake4.gif";
Image4=new Image();
Image4.src="XMas/flake5.gif";
Image5=new Image();
Image5.src="XMas/flake6.gif";
Image6=new Image();
Image6.src="XMas/flake7.gif";
Image7=new Image();
Image7.src="XMas/flake8.gif";
grphcs=new Array(5)
grphcs[0]="XMas/flake1.gif"
grphcs[1]="XMas/flake2.gif"
grphcs[2]="XMas/flake3.gif"
grphcs[3]="XMas/flake4.gif"
grphcs[4]="XMas/flake5.gif"
grphcs[5]="XMas/flake6.gif"
grphcs[6]="XMas/flake7.gif"
grphcs[7]="XMas/flake8.gif"
Ypos=new Array();
Xpos=new Array();
Speed=new Array();
Step=new Array();
Cstep=new Array();
ns=(document.layers)?1:0;
if (ns){
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write("<LAYER><img></LAYER>");
}
}
else{
document.write('<div><div>');
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write('<img>');
}
document.write('</div></div>');
}
WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;
WinWidth=(document.layers)?window.innerWidth:window.document.body.clientWidth;
for (i=0; i < Amount; i++){
Ypos[i] = Math.round(Math.random()*WinHeight);
Xpos[i] = Math.round(Math.random()*WinWidth);
Speed[i]= Math.random()*3+2;
Cstep[i]=0;
Step[i]=Math.random()*0.1+0.05;
}
function fall(){
var WinHeight=(document.layers)?window.innerHeight:window.document.body.clientHeight;
var WinWidth=(document.layers)?window.innerWidth:window.document.body.clientWidth;
var hscrll=(document.layers)?window.pageYOffset:document.body.scrollTop;
var wscrll=(document.layers)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i <Amount> WinHeight){
Ypos[i]=-60;
Xpos[i]=Math.round(Math.random()*WinWidth);
Speed[i]=Math.random()*5+2;
}
if (ns){
document.layers['sn'+i].left=Xpos[i];
document.layers['sn'+i].top=Ypos[i]+hscrll;
}
else{
si[i].style.pixelLeft=Xpos[i];
si[i].style.pixelTop=Ypos[i]+hscrll;
}
Cstep[i]+=Step[i];
}
setTimeout('fall()',50);
}
//-->
fall();
</SCRIPT>
Alles anzeigen
Das Skript funktioniert im IE einwandfrei.
Nur im Firefox bleiben die Schneeflocken alle links oben in der Ecke hängen. Kann mir jemand sagen warum?
Oder wie der Code verändert werden muss, damit es auch im Firefox funktioniert?
Danke schonmal.
P.S.: Ich weiß dass es noch ein anderes Skript gibt dass auch im Firefox funktioniert, nur benötigt das erheblich mehr Rechenleistung und das "Fallen der Schneeflocken" ist mit obigem Skript nicht vergleichbar. Ein User hatte hier das PRoblem schonmal gelöst, es wurde nur offensichtlich der Thread zwischenzeitlich leider gelöscht.