plan_B: Bildergallerie preload?

Beitrag lesen

Hallo,

ich fände es übersichtlicher, wenn du nach dem EVA-Prinzip hier auch im kleinen vorgehen würdest.

  • Eingabe: dein Steuerzeichen
  • Verarbeitung: neuen Index berechnen intValue=
  • Ausgabe: ...innerHTML=" .... [intValue] ... "
  
var maxValue = myImages.length - 1;  
var intValue = 1;  
  
function gallerie(charValue) {  
  
 var ig=document.getElementById("imgGallerie");  
  
 if (charValue == 'c') intValue=1;  
  else if(charValue == '+') intValue++;  
  else if(charValue == '-') intValue--;  
  
 if (intValue < 1 ) intValue=1;   // dein Startindex  
 if (intValue > maxValue ) intValue=maxValue;  
  
 ig.innerHTML = "<img src='" + myImages[intValue].src + "'><p>" +    myImages[intValue].dsc + "</p>";  
 }  

zum Thema Bilder vorladen: Im Prinzip einfach, wenn deine Gallerie klein ist. Andernfalls läd jeder Besucher deiner Seite alle Bilder, auch wenn er nach ein paar Clicks genug hat. u.U. viel Traffic für nichts ...

Wenn deine Bildnavigation nur aus vor und zurück besteht, würde es doch wohl genügen, nur das nächst mögliche Bild vorzuladen.

  
function vorladen1(i) {  
 if (! myImages[i].img ) {  
  myImages[i].img = new Image();  
  myImages[i].img.src = myImages[i].src;  
  }  
 }  
  
function vorladen(i) {  
 var next= i<(maxValue-1) ? (i+1) : 1;  
 var prev= i>1 ? (i-1) : 1;  
 vorladen1(next);  
 vorladen1(prev);  
 }  

mit der Initialisierung sollte das Startbild vorgeladen werden

vorladen1(1);

und innerhalb der Galleriefunktion wäre der Aufruf

vorladen(intValue);

Gruß plan_B

--
     *®*´¯`·.¸¸.·