Struppi: setTimeout und Preload - ?

Beitrag lesen

function wechseldich()
{
document.images.slide.src=imgsrc[step-1];
if (step<imgsrc.length) step++; else step=1;

Wenn du die umstellst, sparst du dir ein pass Berechnungen:
if ( step < imgsrc.length ) step++; else step = 0;
document.images.slide.src=imgsrc[step];

if (t>0) setTimeout("wechseldich()",50);
}

Im Body steht dann
<img src="xyz.gif" name="slide" width="180" height="90">

Da die setTimeout-Zeit 50ms ist, schalten die Bilder, die sich in dem Array imgsrc[] befinden, sehr schnell um und es kommen fast nur broken Images.

50 ms sind zuwenig um irgendwas zu machen, selbst 100 ms reichen wahrscheinlich nicht aus.

Für sowas solltest du animierte gif's nehmen.

Dabei habe ich 1. eine extra Preload-Seite, 2. auf der Slideshow-Seite die Bilder als 1x1 Pixel UND 3. alle Bilder nochmal als Dreamweaver Preload-Funktion.

Kann man irgendwie (das ist mein Problem), per onLoad prüfen, ob das Bild geladen ist und dann erst setTimeout(wechseldich()",50) aufrufen?

Ja, aber nur mit der Variante 2. Bei der 3. Variante musst du bei jedem Bild den onload Handler abfangen und zählen ob alle geladen sind.

Aber letztlich denke ich mal wirst du nicht glücklich werden, denn erstens hat der IE massiv Probleme mit dem Cache, sodass Bilder trotz vorladen nochmal geladen werden und musst du dem Browser auch Zeit lassen zum darstellen.

Struppi.