Ron: JAvascript Bildwechsel

Hallo,

ich habe noch ein Problem...

ich versuche eine slideshow mit fadeefeckt umzusetzen.

ich tausche das bild per javascript aus
und rufe dann die funktion auf die das bild einfadet.

var namezusammensetzen = "images/zoom_"+pics[welchesbild];
document.getElementById('bildwechseln').src=namezusammensetzen;
window.setTimeout("fadeupwechsel();", 100);

Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.

ein prüfen mittels

if(document.getElementById('bildwechseln').src==namezusammensetzen)

funktioniert nicht...

hier ein beispiellink, wobei es auch oft klappt, aber eben  manchmal auch nicht. Gerade auf den Macs passiert das gerne..

[link]www.beaugeois.de/test/3.htm[/link]

Vielleicht weiss ja jemand wie man sowas normalerweise löst...

Mein 2. (Safari/Javascript/Div/style.height)-Problem
[link]http://forum.de.selfhtml.org/?t=158840&m=1033051/[link]

  1. Hi Ron,

    ich versuche eine slideshow mit fadeefeckt umzusetzen.
    ich tausche das bild per javascript aus
    und rufe dann die funktion auf die das bild einfadet.

    var namezusammensetzen = "images/zoom_"+pics[welchesbild];
    document.getElementById('bildwechseln').src=namezusammensetzen;
    window.setTimeout("fadeupwechsel();", 100);

    Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
    hier ein beispiellink, wobei es auch oft klappt, aber eben  manchmal auch nicht. Gerade auf den Macs passiert das gerne..

    Ich kann dir erstmal nicht wirklich helfen, da ich es noch nicht ganz verstehe, aber du könntest

    [link]www.beaugeois.de/test/3.htm[/link]

    richtig verlinken, bei mir erscheint "Objekt nicht gefunden", dann kann man vielleicht besser nachvollziehen, was du meinst. Im Übrigen kannst du Links hier wie folgt einrichten http://forum.de.selfhtml.org/hilfe/bedienung.htm#verweise-einbinden

    Mein 2. (Safari/Javascript/Div/style.height)-Problem
    [link]http://forum.de.selfhtml.org/?t=158840&m=1033051/[link]

    Mach dir keine Gedanken, es werden hier alle Anfragen gelesen. Dieser nochmal explizite Hinweis könnte als Drängelei gewertet werden. Ich weiß, es ist erstmal eine ungewöhnliche Sortierung hier, aber glaube mir, sie ist effektiv und dein Posting wird nichtuntergehen ;)

    ciao
    romy

    1. Halo Romy,

      Stimmt, das war ein falscher Link...
      Und eingebunden ist er auch falsch.
      Na, super...

      Hoffe es schaut sich doch noch jemand die Sache an.
      danke jedenfalls für deinen Hinweis.

      http://www.abspacker.de/test/3.htm

      Mein Hinweis sollte auch kein Spam sein.
      Werde ich mich in Zukunft dran halten... ;)

      Gruß Ron

      Hi Ron,

      ich versuche eine slideshow mit fadeefeckt umzusetzen.
      ich tausche das bild per javascript aus
      und rufe dann die funktion auf die das bild einfadet.

      var namezusammensetzen = "images/zoom_"+pics[welchesbild];
      document.getElementById('bildwechseln').src=namezusammensetzen;
      window.setTimeout("fadeupwechsel();", 100);

      Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.
      hier ein beispiellink, wobei es auch oft klappt, aber eben  manchmal auch nicht. Gerade auf den Macs passiert das gerne..
      Ich kann dir erstmal nicht wirklich helfen, da ich es noch nicht ganz verstehe, aber du könntest
      [link]www.beaugeois.de/test/3.htm[/link]
      richtig verlinken, bei mir erscheint "Objekt nicht gefunden", dann kann man vielleicht besser nachvollziehen, was du meinst. Im Übrigen kannst du Links hier wie folgt einrichten http://forum.de.selfhtml.org/hilfe/bedienung.htm#verweise-einbinden

      Mein 2. (Safari/Javascript/Div/style.height)-Problem
      https://forum.selfhtml.org/?t=158840&m=1033051
      Mach dir keine Gedanken, es werden hier alle Anfragen gelesen. Dieser nochmal explizite Hinweis könnte als Drängelei gewertet werden. Ich weiß, es ist erstmal eine ungewöhnliche Sortierung hier, aber glaube mir, sie ist effektiv und dein Posting wird nichtuntergehen ;)

      ciao
      romy

      1. Hi Ron,

        Hoffe es schaut sich doch noch jemand die Sache an.
        danke jedenfalls für deinen Hinweis.
        http://www.abspacker.de/test/3.htm

        Mir tut es leid, dass ich zu deinem eigentlichen Problem nichts sagen konnte ;) Nimm meine Kommentare nur als Hinweis, nicht als Kritik. Willkommen im Forum!
        Aber ich habe trotzdem noch was zu beanstanden: Wenn du zitierst, ist es nachher leichter nachzuvollziehen, wenn du nur die Textpassagen stehen lässt, auf welche du sich beziehst. Einfach den Text drunter stehen zu lassen erzeugt TOFU und ist sehr unschön.

        Hast du es lösen können mit Struppis Hilfe?

        ciao
        romy

        1. HI Romy,

          leider hab ich es bis jetzt noch nicht hinbekommen.
          Auch Struppis hinweis hat mir nicht weitergeholfen.
          Vielleicht habe ich ihn auch falsch verstanden.
          Habe ihm jedenfalls geantwortet und hoffe auf Hilfe...

          Gruß Ron

  2. var namezusammensetzen = "images/zoom_"+pics[welchesbild];
    document.getElementById('bildwechseln').src=namezusammensetzen;
    window.setTimeout("fadeupwechsel();", 100);

    Das Problem ist, das die Funktion manchmal schon aufgerufen wird bevor das bild auch wirklich gewechselt hat. D.h. auf dem Bildschirm sieht man während dem einfaden das bild wechseln. dabei soll das bild ja gewechselt haben, bevor das bild wieder eingefadet wird.

    einfach warten bis der load Event gefeuert wird. In etwa so

    var namezusammensetzen = "images/zoom_"+pics[welchesbild];  
    var img = document.getElementById('bildwechseln')  
      
    img.onload = function() {  
    window.setTimeout("fadeupwechsel();", 100);  
    };  
    img.src=namezusammensetzen;  
    
    

    Struppi.

    1. Hallo Struppi,

      vielen Dank erstmal das du dich damit beschäftigt hast und danke für deine Antwort.

      Leider funktioniert dein genannter code nicht, oder ich habe etwas falsch umgesetzt.

      dein code:

      var namezusammensetzen = "images/zoom_"+pics[welchesbild];  
      var img = document.getElementById('bildwechseln')  
        
      img.onload = function() {  
      window.setTimeout("fadeupwechsel();", 100);  
      };  
      img.src=namezusammensetzen;  
      
      

      Geändert habe ich fadeupwechsel() in fadedownwechsel() da ja das bild nach dem hochfaden und tauschen zum runterfaden soll.
      dein genannter code steht ja in fadeupwechsel.
      ich hoffe du verstehst was ich meine...

      Der relevante code ist also nun folgender:

        
      function fadeupwechsel(){ // bild einfaden  
        
      trans_top += faderzahl; // opacity erhöhen  
      if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.filter="alpha(opacity:"+trans_top+")";  
      if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.KHTMLOpacity=trans_top/100;  
      if(welcherbrowser!='Netscape')document.getElementById('bildwechseln').style.opacity=trans_top/100;  
      document.getElementById('bildwechseln').style.MozOpacity=trans_top/101;  
        
        
      if(trans_top >= 100)  { // wenn bild fertiggefadet  
        
        if(wechselanaus=="an") { // Solange nicht auf stop geklickt wurde weiter machen  
                       var namezusammensetzen = "images/zoom_"+pics[welchesbild];  
                       var img = document.getElementById('bildwechseln');  
        
                       img.onload = function() {  
                                               window.setTimeout("fadedownwechsel();", 3000); // weiter zum wegfaden  
                                        }  
                       img.src=namezusammensetzen;  
                              } // Solange nicht auf stop geklickt wurde ende  
        
                             } // wenn bild fertiggefadet ende  
      else {  
            window.setTimeout("fadeupwechsel()",10); // wenn noch nicht fertiggefadet wieder von vorne  
           }  
      }  
      
      

      Wenn ich das so ausführe passiert ein durcheinander.
      Zu sehen unter:

      http://www.abspacker.de/test/3.htm

      Vielleicht kannst du mir weiterhelfen?

      Gruß Ron

  3. Hallo,

    Vielleicht weiss ja jemand wie man sowas normalerweise löst...

    der Suchbegriff "Bilder vorladen" sollte dir weiterhelfen. Kommt drauf an, wie groß deine Bilder sind, ob vorm Start alle Bilder angefordert werden oder während das eine Bild angezeigt wird nur das nächste geladen wird.

    Gruß plan_B

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