Klawischnigg: Bilddarstellungsproblem im Mozilla/Firefox

Hi there,

mich quält ein kleines, unbedeutendes Problem in einen an sich an Trivialität schwer zu überbietendem Skript. Ziel und Zweck des Skripts ist eine Slideshow (Hurra, wir haben gerade das Rad erfunden!) mit Fadingeffekt unter Verwendung der opacity-Eigenschaft.

Die Bilderquellen sind einfach in einem Array gelistet, die Bilder werden nach und nach angezeigt, wenn das letzte durch ist, kommt wieder das erste. So weit, so aufregend und gut, bis auf den Umstand, daß in allen getesteten Geckobrowsern nach dem Durchlauf der ersten Bildserie ein ganz kurzes, aber leider störendes Flackern nach jedem Bild auftritt und zwar unabhängig davon, wie viele Bilder eine Serie enthält. Ich seh vielleicht den Wald vor lauter Bäumen nicht, aber ich denke einmal, daß hat irgendetwas mit dem internen Bildspeicher des Browsers zu tun oder was weiß ich; vielleicht ja hat irgendjemand Ähnliches schon beobachtet und auch gelöst.

Zu Betrachten ist das ganze hier

Im IE und im Opera ab Version 9 funktioniert das Skript so wie es soll. Zu erwähnen vielleicht auch, daß es in den diversen Geckobrowsern dann funktioniert, wenn das Skript zweimal, sprich auch auf einem anderem Tab läuft...

  1. Tach Klawischnigg.

    Im IE und im Opera ab Version 9 funktioniert das Skript so wie es soll.

    Tatsächlich? Bei mir wird das Überblenden stets nach etwa der Hälfte abgebrochen, und anschließend das neue Bild mit einem Plopp vollständig sichtbar. Das liegt daran, daß transition() im 2-Sekunden-Takt (gestartet in mkSlideShow()) ausgeführt wird, völlig unabhängig davon, wie weit dim() mit dem Überblenden ist. Ist das Absicht oder ein unbemerkter Konstruktionsfehler?

    Dieser Effekt dominiert das Erscheinungsbild so sehr, daß ich das von dir beschriebene Flackern in den Mozillas nicht mal erkennen kann.

    --
    Once is a mistake, twice is jazz.
    1. Tach Klawischnigg.

      Tatsächlich? Bei mir wird das Überblenden stets nach etwa der Hälfte abgebrochen, und anschließend das neue Bild mit einem Plopp vollständig sichtbar. Das liegt daran, daß transition() im 2-Sekunden-Takt (gestartet in mkSlideShow()) ausgeführt wird, völlig unabhängig davon, wie weit dim() mit dem Überblenden ist. Ist das Absicht oder ein unbemerkter Konstruktionsfehler?

      Eigentlich war es beabsichtigt, daß das egal ist, bei zu kurz gewählten Intervallen, die Frage ist, was man sieht, wenn das Intervall länger gewählt wird, was ich hiermit  gemacht habe;) Leider hat das mit meinem Problem nichts zu tun, sonst müßte der Effekt in anderen Browsern auch auftreten.

      1. Tach Klawischnigg.

        Das Problem ist die erste Zeile in deiner Funktion transition(). Schmeiß das opazitaet("B2",0); raus und auch die Mozillas laufen flackerfrei.

        --
        Once is a mistake, twice is jazz.
        1. Hi there,

          Das Problem ist die erste Zeile in deiner Funktion transition(). Schmeiß das opazitaet("B2",0); raus und auch die Mozillas laufen flackerfrei.

          Leider nein. Anyway, ich werd' schon draufkommen. Es ist kein Fehler im Skript, es ist irgendein Bug im Mozilla, für den ich einen Workaround suche. Wenn es ein Fehler im Skript wäre, dann würde es im Mozilla nicht richtig laufen, sobald es in einem zweiten Tab gestartet wird. Das ist imho ein eindeutiges Indiz für einen Browserbug.

          Trotzdem Danke für für Dein Bemühen...

          1. 'Nabend.

            Das Problem ist die erste Zeile in deiner Funktion transition(). Schmeiß das opazitaet("B2",0); raus und auch die Mozillas laufen flackerfrei.

            Leider nein.

            Hmm, das ist seltsam. Allen Mozillas, in denen ich es ohne diesen Aufruf getestet habe, konnte ich das Flackern damit abgewöhnen.

            Wenn es ein Fehler im Skript wäre, dann würde es im Mozilla nicht richtig laufen, sobald es in einem zweiten Tab gestartet wird.

            Das war bei mir wiederum vorher in *keinem* Mozilla der Fall. Geflackert hat es auch bei mehreren parallelen Instanzen.

            --
            Once is a mistake, twice is jazz.
            1. Hi there,

              Leider nein.

              Hmm, das ist seltsam. Allen Mozillas, in denen ich es ohne diesen Aufruf getestet habe, konnte ich das Flackern damit abgewöhnen.

              ja, das ist alles höchst seltsam, das ist halt das irrationale in der EDV ;)
              Vielleicht liegts auch an der Graphickarte, ich hab in meinem Testrechner irgendein 0815 Nvidia, ich probiers jetzt noch auf einem 2K-Rechner mit ATI-Karte und unter Linux, was weiss ich...

              Wenn es ein Fehler im Skript wäre, dann würde es im Mozilla nicht richtig laufen, sobald es in einem zweiten Tab gestartet wird.

              Das war bei mir wiederum vorher in *keinem* Mozilla der Fall. Geflackert hat es auch bei mehreren parallelen Instanzen.

              Versteh ich noch viel weniger...

              1. 'Nabend.

                Hmm, das ist seltsam. Allen Mozillas, in denen ich es ohne diesen Aufruf getestet habe, konnte ich das Flackern damit abgewöhnen.

                ja, das ist alles höchst seltsam, das ist halt das irrationale in der EDV ;)

                In den Mozillas blitzt das Bild immer am Ende des Einblendevorgangs auf. Wenn ich den Endwert nicht auf opacity=100 sondern z.B. auf 99 [1] setze, bleiben sie ruhig. Verhalten sie sich wenigstens in diesem Punkt bei dir genauso?

                [1] Das Bild kann ich dabei mit bloßem Auge auch so gut wie nicht mehr von einem mit opacity=100 unterscheiden.

                --
                Once is a mistake, twice is jazz.
                1. Hi there,

                  In den Mozillas blitzt das Bild immer am Ende des Einblendevorgangs auf. Wenn ich den Endwert nicht auf opacity=100 sondern z.B. auf 99 [1] setze, bleiben sie ruhig. Verhalten sie sich wenigstens in diesem Punkt bei dir genauso?

                  Nein. Es wird immer skuriler. Selbst wenn ich den Endwert auf 80 setze ändert sich nichts prinzipielles.

                  Was passiert ist eigentlich klar; das Bild, das  langsam eingeblendet wird, steht eine definierte Zeitlang da, nachdem es die höchste Opazität erreicht hat; danach wird das gleiche Bild die Source des Bildes, das dahinter liegt; um den Hintergrund zu bilden für das neue Bild, das wieder langsam eingeblendet wird. Dieses lästige Blinkphänomen tritt offenbar dann auf, wenn die Bildquelle des Vordergrundbildes die Bildquelle des Hintergrundbildes wird. Die Frage ist, was den Mozilla daran stört, wo es den beiden anderen Browsern offenbar egal ist, vor allem, warum es ihn erst dann stört, wenn er das Bild schon mindestens einmal angezeigt hat.

                  Die eine Zeile, die Du erwähnt hast, kann man wirklich weglassen, die war nur als Folge einer Umgruppierung da, denn der nächste Befehl ist ja nichts anderes als der Aufruf der Funktion, der genau nichts anderes zu Beginn noch einmal macht.

                  Ich krieg selbst schon Zuckungen, wenn ich hinschau, ich schwank schon zwischen "Hut-drauf-hauen" und sportlichem Ehrgeiz ;)

                  1. Was passiert ist eigentlich klar; das Bild, das  langsam eingeblendet wird, steht eine definierte Zeitlang da, nachdem es die höchste Opazität erreicht hat; danach wird das gleiche Bild die Source des Bildes, das dahinter liegt; um den Hintergrund zu bilden für das neue Bild, das wieder langsam eingeblendet wird. Dieses lästige Blinkphänomen tritt offenbar dann auf, wenn die Bildquelle des Vordergrundbildes die Bildquelle des Hintergrundbildes wird.

                    Da liegt anscheinend der Unterschied. Als ich gestern das Wechselintervall etwas verlängerte oder auch mal die beiden Bilder gegeneinander verschob, war zu sehen, was ich oben beschrieben habe: Am Ende der Einblendphase blitzt das eingeblendete Bild auf – anscheinend beim Sprung zu opacity=100 und damit noch *vor* dem Wechsel des Hintergrundbildes. %-)

                    Die eine Zeile, die Du erwähnt hast, kann man wirklich weglassen, die war nur als Folge einer Umgruppierung da, denn der nächste Befehl ist ja nichts anderes als der Aufruf der Funktion, der genau nichts anderes zu Beginn noch einmal macht.

                    Ja, nur *vor* dem Wechsel des Bildes B1, der zwischen diesen beiden Aktionen erfolgt. Deshalb fand ich den Effekt, den ich bei mir beobachten konnte, gar nicht so unerklärlich.

                    Ich krieg selbst schon Zuckungen, wenn ich hinschau, ich schwank schon zwischen "Hut-drauf-hauen" und sportlichem Ehrgeiz ;)

                    Ich persönlich belasse es jetzt dabei. Viel Erfolg, falls du tatsächlich weitermachst!

                    --
                    Once is a mistake, twice is jazz.