mrjerk: Slideshow

Beitrag lesen

Hallo,
Gibt es JavaScript-Fehler? Wenn ja solltest Du denen mal zuerst nachgehen.

Wenn nein:
Hmmmm...wie genau sind denn die Bilder in "slideshow" angeordnet? Liegen die alle übereinander (mit unterschiedlichem Z-Index)?
Dann könnte es sein, dass das prinzipiell schon funktioniert, aber das letzte Bild halt alle anderen verdeckt - wenn dann das erste Bild einfaded siehst Du's dann natürlich nicht.

In diesem Fall könntest Du natürlich, wenn Du beim letzten Bild ankommst, für alle Bilder die Opacity einfach auf 0 zurückdrehen.

  
 if (counter >= imgs.length) {  
  
    // Alle Bilder auf durchsichtig zurücksetzen  
    for (var i = 0; i < imgs.length; i++) {  
         imgs[i].style.opacity = 0;  
         imgs[i].style.filter = "alpha(opacity=0)";  
    }  
    counter=0;  
 }  
  

Hat aber den Nachteil, dass das letzte Bild auf einen Schlag komplett verschwindet und erst dann das erste langsam wieder eingeblendet wird.

Du könntest aber bei jedem Durchlauf für jedes Bild den z-Index anheben und dazu seine Opacity zurückdrehen. Etwa so:

  
// Wird gebraucht, um den Z-Index hoch zu zaehlen  
var zIndexCounter = 0;  
function next()  
         {  
         var imgs = document.getElementById("slideshow").getElementsByTagName("img");  
         if (typeof(counter) != "number")  
            {  
            counter = 0;  
            }  
         counter++;  
         if (counter >= imgs.length)  
            {  
            counter=0;  
            }  
  
         // Das ist das nächste Bild, welches eingeblendet werden soll  
         var nextImage = imgs[counter];  
  
         // Erstmal auf durchsichtig stellen  
         nextImage.style.opacity = 0;  
         nextImage.style.filter = "alpha(opacity=0)";  
  
         // Zum obersten Bild machen  
         zIndexCounter++;  
         nextImage.style.zIndex = zIndexCounter;  
  
         // Jetzt können wir überblenden  
         fade();  
         };  
  

(Kann nicht garantieren, dass das so funktioniert ;) )

Wofür genau steht jetzt nochmal die 1000?

Ignorier das, hab mich in Deinem Code verguckt :)

Viele Grüße,
Jörg