Hi,
ich schreibe grade einen Fader (wo bei das Fader-Framework eine gute Vorlage darstellt). Allerdings funktioniert mein window.setTimeout nicht wirklich, bzw. es wartet nicht.
Hier mal der Quellcode:
function Fader(id)
{
this.div = document.getElementById(id);
this.id = id;
this.ai = 0;
this.fadeTime = 100;
this.timeOut = 3000;
this.repeat = false;
this.images = new Array("./IMAGES/Fahrer/borch.jpg","./IMAGES/Fahrer/micha.jpg");
this.createImages = function(){
this.div.innerHTML="";
for(i=0;i<this.images.length;i++)
this.div.innerHTML+="<img style='opacity: "+(i==0?"1":"0")+";' src='"+this.images[i]+"'>";
}
this.addImage = function(img){
this.images[this.images.length]=img;
}
//Es geht mir um den Folgenden Code-Fetzen:
this.Fade = function(step) {
step = step || 0;
step+=2;
var imgs=this.div.getElementsByTagName("IMG");
imgs[this.ai+1].style.opacity=step/100;
if(step<100)
window.setTimeout(this.Fade(step), this.fadeTime);
}
}
In meiner HTML-Seite erstelle ich im onload ein neues Fader-Objekt:
var myfader = new Fader("fadediv");
Dann habe ich noch einen Button:
<input type=button value="create&fade" onclick="myfader.createImages();myfader.Fade();">
Momentan ist die fadeTime auf 3000 Millisekunden eingestellt, quasi ja 3 Sekunden wird in der Fade-Routine das aktuelle Img-Objekt immer um 2% sichtbarer.
Heißt quasi, dass der Transparenz-Übergang ca. 2,5 Minuten dauern müsste. Nun rast es aber durch und ist innerhalb eines Bruchteils einer Sekunde fertig.
Fehlermeldungen bekomme ich keine, also wo liegt mein Fehler?
Im Fader-Framework wirds genauso gemacht aber da funktioniert es ja.
Falls es wichtig ist, ich benutze Firefox 3.0.15
MfG
thecreep