Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild wieder anzeigen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild wieder anzeigen

    Hallo,

    ich bin gerade dabei, eine kleine Slideshow von Bildern zu machen. (Bitte schlagt jetzt nicht eine andere Variante vor, es dient zur Übung für mich.)

    Das setze ich mit JavaScript um und setzte zu Anfang erst einmal 3 Bilder hintereinander. Das erste Bild verschwindet nach 5 Sekunden, sodass das zweite Bild zu sehen ist. Dasselbe geschiet mit Bild 3.

    Nun möchte ich, dass nach Bild 3 wieder alle 3 Bilder erscheinen und sich dann wieder von vorne nach der gegebenen Zeit abbauen und verschwinden.

    Dazu habe ich folgenden Code. Die 3 Bilder verschwinden nach den 5 Sekunden, das klappt. Nur gibt es einen Fehler im wiederauftauchen der Bilder.

    Könntet ihr da mal drüberschauen und mir den Fehler erläutern.

    Hier der Code:
    PHP-Code:
       <script type="text/javascript">
       
    // Bilder verschwinden lassen
       
    function disappear(id) {
         var 
    obj document.getElementById(id);
         if(
    obj.style.display == 'block') {
           
    obj.style.display 'none';    
         }
       }
       
    // Bilder wieder anzeigen
       
    function appear(id) {
         var 
    objap document.getElementById(id);
           if(
    objap.style.display == 'none') {
             
    objap.style.display 'block';
           }
       }

       
    // Bilderwechsel erzeugen
       
    var set 1;
       var 
    menge 3;
       var 
    time 5000;

       while(
    set <= menge)
       {
         
    window.setTimeout("disappear("+set+")" time);
         var 
    set set 1;
         var 
    time time 5000;
       }
       var 
    set set 1// Weil set dann 4

       
    if(set == menge)
       {
         
    window.setTimeout("appear(1)" 0);
         
    window.setTimeout("appear(2)" 0);
         
    window.setTimeout("appear(3)" 0);
         
         var 
    set 1;
       }
       
       
       
    </script> 
    Gruß


    EDIT: Habe darunter jetzt 3 Buttons eingebunden, um auszutesten, ob die Funktion überhaupt funktioniert.
    PHP-Code:
    <input type='submit' onClick='appear(1);' />
    <
    input type='submit' onClick='appear(2);' />
    <
    input type='submit' onClick='appear(3);' /> 
    Und es funktioniert, d.h. die Funktion stimmt soweit, nur funktioniert das Script oben nicht korrekt.
    Hat hier jemand eine Idee?

  • #2
    "(..)nur funktioniert das Script oben nicht korrekt ", ist jetzt nicht die super fehlerbeschreibung!

    aber ich tipe mal auf die args bei der durch timeout aufgerufenen function.
    das muss man mit function() machen:
    http://www.w3schools.com/jsref/met_win_settimeout.asp

    Kommentar


    • #3
      Ich denke, dass man aus meiner Beschreibung sehr wohl erkennen konnte, was genau das Problem ist.

      Habe jetzt eine Überganglösung gefunden und verwende jetzt 4 Bilder hintereinander.
      Da ich vermute, dass der Benutzer die Seite schon verlassen hat, bis die Slideshow abgelaufen ist, ist das auch in Ordnung so. Denn das Verschwinden und Erscheinen endet nach dem Anzeigen des zu Anfang ersten Bildes.

      PHP-Code:
      <script type="text/javascript">
         
      // Bilder verschwinden lassen
         
      function disappear(id) {
           var 
      obj document.getElementById(id);
           if(
      obj.style.display == 'block') {
             
      obj.style.display 'none';    
           }
         }
         
      // Bilder wieder anzeigen
         
      function appear(id) {
           var 
      objap document.getElementById(id);
             if(
      objap.style.display == 'none') {
               
      objap.style.display 'block';
             }
         }

         
      // Bilderwechsel erzeugen
         
      var set 1;
         var 
      menge 4;
         var 
      time 4000;

         while(
      set <= menge)
         {
           if(
      set menge) {
             
      window.setTimeout("disappear("+set+")" time);
             
           }
           var 
      set set 1;
           var 
      time time 4000;
         }

         var 
      set set 1// Weil set dann 5
         // document.write(set);
         
      if(set == menge)
         {
           
      window.setTimeout("appear(3)" 16000);
           
      window.setTimeout("appear(2)" 20000);
           
      window.setTimeout("appear(1)" 24000);

           var 
      set 1;
         }
      </script> 

      Kommentar


      • #4
        Ich denke, dass man aus meiner Beschreibung sehr wohl erkennen konnte, was genau das Problem ist.
        "denken ist ..", ankja lassen wir das. aber bitte hilf mir, was ausser den beiden anmerkungen in kommentaren:

        // Weil set dann 5

        // Weil set dann 4
        ist eigentlich anders am code?

        ja, und zum ursprünglichen problem:

        da dir ein link nicht geholfen hat, schade:
        könntest du bitte das:
        Nur gibt es einen Fehler im wiederauftauchen der Bilder.
        konkretisieren?

        Kommentar

        Lädt...
        X