javffiiit: wechselnde Bilder .... klappt mit kleinem Fehler ...

Ich habe nachfolgendes Script am Laufen.
Das Script wechselt automatisch Bilder. Das tut es auch, allerdings, wenn man die Seite aufruft, wird zuerst "nichts" angezeigt, dann kommt bild2 als erstes. Dann läuft es in der Schleife sauber durch ...

Bin kein Java-König und weiß nicht, wo ich dies abstellen kann

  
<html>  
 <head>  
  
<script type="text/javascript">  
  
var Geschwindigkeit = 5000 , aktuell = 1;  
  
if (document.images) {  
 link = new Array();  
  
 bild1 = new Image();  
 bild1.src = "bilder/bild1.png";  
 link[1] = "http://www.test1.de";  
  
 bild2 = new Image();  
 bild2.src = "bilder/bild2.png";  
 link[2] = "http://www.test2.de";  
  
 bild3 = new Image();  
 bild3.src = "bilder/bild3.png";  
 link[3] = "http://www.test3.de";  
  
 bild4 = new Image();  
 bild4.src = "bilder/bild4.jpg";  
 link[4] = "http://www.test4.de";  
}  
  
var anzahl = link.length-1;  
  
function Bilderwechsel(){  
 if (aktuell == anzahl)  
  aktuell = 0; aktuell++;  
  document.images['Banner'].src = window['bild' + aktuell].src;  
  setTimeout ('Bilderwechsel()', Geschwindigkeit)  
}  
  
function neueSeite(){  
 if (document.images)  
 top.location.href = link[aktuell]  
}  
//-->  
</script>  
  
</head>  
<body onLoad="setTimeout ('Bilderwechsel()', Geschwindigkeit)">  
  
  
<div align=center>  
 <a href="javascript:neueSeite()" onClick="this.href=link[aktuell]; this.target='_blank'">  
  <img name="Banner"  border=0>  
 </a>  
</div>  
  
</body>  
</html>  
  
  

  1. Lieber javffiiit,

    1.)

    Bin kein Java-König und weiß nicht, wo ich dies abstellen kann

    Java != JavaScript

    2.)
    http://aktuell.de.selfhtml.org/artikel/javascript/fader-framework/

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo,

      a) siehe

      2.) http://aktuell.de.selfhtml.org/artikel/javascript/fader-framework/

      b) Du machst typische Anfängerfehler:
      Array-Indizes in JavaScript (und auch sonst) fangen in aller Regel bei 0 an, nicht bei 1.

      Die Variable aktuell enthält beim ersten Aufruf 1, daher startet die Show mit window['bild2'].src, wegen aktuell++; vor jedem Wechsel.

      function Bilderwechsel(){

      if (aktuell == anzahl)
        aktuell = 0; aktuell++;
        document.images['Banner'].src = window['bild' + aktuell].src;
        setTimeout ('Bilderwechsel()', Geschwindigkeit)
      }

        
      Die Schreibweise und Einrückung suggeriert, dass der Code nach `aktuell = 0;`{:.language-javascript} auch noch zur if-Bedingung gehört.  
      Das ist aber nicht der Fall. Besser wäre so:  
      ~~~javascript
        
      if(aktuell == anzahl) {  
        aktuell = 0;  
      } else {  
        aktuell++;  
      }
      

      Dann wird es deutlich.

      Gruß, Don P

      1. Die Schreibweise und Einrückung suggeriert, dass der Code nach aktuell = 0; auch noch zur if-Bedingung gehört.
        Das ist aber nicht der Fall. Besser wäre so:

        if(aktuell == anzahl) {
          aktuell = 0;
        } else {
          aktuell++;
        }

          
          
        Hab ich genauso umgestellt - genau der gleiche Effekt ...
        
        1. Hallo,

          Hab ich genauso umgestellt - genau der gleiche Effekt ...

          Zeig' mal her. Vermutlich immernoch die Sache mit den Array-Indizes...

          Gruß, Don P

          1. Jetzt wird das erste Bild auch als erstes angezeigt, allerdings dauert das eben, bis alles geladen ist. Solange wird eben nur das "komische" rote Kreuz als Platzhalter angezeigt - unschön, aber vielleicht krieg ichs ja noch hin

              
              
              
            Im Moment sieht es so aus:  
            <html>  
             <head>  
              
            <script type="text/javascript">  
              
            var Geschwindigkeit = 5000 , aktuell = 0;  
              
            if (document.images) {  
             link = new Array();  
              
             bild1 = new Image();  
             bild1.src = "bilder/bild1.png";  
             link[1] = "http://www.test1.de";  
              
             bild2 = new Image();  
             bild2.src = "bilder/bild2.png";  
             link[2] = "http://www.test2.de";  
              
             bild3 = new Image();  
             bild3.src = "bilder/bild3.png";  
             link[3] = "http://www.test3.de";  
              
             bild4 = new Image();  
             bild4.src = "bilder/bild4.jpg";  
             link[4] = "http://www.test4.de";  
            }  
              
            var anzahl = link.length-1;  
              
            function Bilderwechsel(){  
             if (aktuell == anzahl)  
              aktuell = 0; aktuell++;  
              document.images['Banner'].src = window['bild' + aktuell].src;  
              setTimeout ('Bilderwechsel()', Geschwindigkeit)  
            }  
              
            function neueSeite(){  
             if (document.images)  
             top.location.href = link[aktuell]  
            }  
            //-->  
            </script>  
              
            </head>  
            <body onLoad="setTimeout ('Bilderwechsel()', Geschwindigkeit)">  
              
              
            <div align=center>  
             <a href="javascript:neueSeite()" onClick="this.href=link[aktuell]; this.target='_blank'">  
              <img name="Banner"  border=0>  
             </a>  
            </div>  
              
            </body>  
            </html>  
            
            
            1. Liebe(r) javffiiit,

              Im Moment sieht es so aus:

              sach mal, willst Du dazulernen oder nur eine fertige Lösung? Im ersteren Falle hätte ich jetzt erwartet, dass Du Dir meinen Link zumindest einmal genauer anschaust (was unweigerlich zu Rückfragen führen müsste)... im zweiteren Falle bist Du hier ziemlich falsch.

              Liebe Grüße,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)