Felix Riesterer: Grafiken wechseln

Beitrag lesen

Lieber Thomas,

bekomme das 3 Bild geschweige ein 4 oder 5 nicht mit rein ohne das mir die Überblendeffekte flöten gehen.

Tja, warum wohl nicht? Dein Bild Nr. 3 (4 und 5) benennst Du "Bild3" (und wahrscheinlich analog dazu "Bild4" und "Bild5"). Wo bitte in der Funktion "Bildwechsel()" steht denn etwas von diesen weiteren Variablen?

  

>   Bild1 = new Image();  
>   Bild1.src = "bilder/star.jpg";  
>   Bild2 = new Image();  
>   Bild2.src = "bilder/fire.jpg";  
>   Bild3 = new Image();  
>   Bild3.src = "bilder/winter.jpg";  
>   
>   var Bild = 1;  
>   function Bildwechsel () {  
>    if (Bild == 1) {  
>       Bild = 2;  
>       document.all.Madrid.filters.blendTrans.Apply();  
>       document.all.Madrid.src = Bild2.src;  
>       document.all.Madrid.filters.blendTrans.Play();  
>    } else {  
>       Bild = 1;  
>       document.all.Madrid.filters.blendTrans.Apply();  
>      document.all.Madrid.src = Bild1.src;  
>      document.all.Madrid.filters.blendTrans.Play();  
>    }  
>   }

Vielleicht solltest Du "Bildwechsel()" variabel gestalten, sodass Du "Bildwechsel()" das Bild, zu dem der Übergang verlaufen soll, jedesmal beim Aufruf übermittelst. Dazu würde es sich allerdings sehr empfehlen, wenn Du Deine Bilder dann in einem Array (oder von mir aus Objekt) sammelst, damit man bequemer auf sie zugreifen kann.
Zuguterletzt solltest Du diese uralte JScript-Syntax mit "document.all" komplett über Board werfen und die neuere DOM-Syntax für moderne Browser einsetzen. Dazu gehört dann auch <script type="text/javascript">!

  
 var meineBilder = new Array();  
  
 meineBilder[1] = new Image();  
 meineBilder[1].src = "bilder/star.jpg";  
 meineBilder[2] = new Image();  
 meineBilder[2].src = "bilder/fire.jpg";  
 meineBilder[3] = new Image();  
 meineBilder[3].src = "bilder/winter.jpg";  
 // weitere Bilder hier einfügen  
  
 function Bildwechsel(BildNr)  
 {  
 var MadridBild = document.getElementById("Madrid");  
 if(meineBilder[BildNr])  
  {  
  MadridBild.filters.blendTrans.Apply();  
  MadridBild.src = meineBilder[BildNr].src;  
  MadridBild.filters.blendTrans.Play();  
  }  
 }

Der Aufruf der Funktion "Bildwechsel()" muss dann einen numerischen Wert enthalten, der das entsprechende Array-Element referenziert. Das könnte so aussehen: <a href="bild.jpg" onclick="Bildwechsel(2)"><img src="bild" alt="Madrid-Bild" id="Madrid" /></a>

Ich habe meinen Kram da jetzt nicht getestet. Das kannst Du sicher selber!

Liebe Grüße aus Ellwangen,

Felix Riesterer.