MouseOver Fehler??

  • Ich bin gerade dabei eine Webseite aufzubauen.
    Das Menü soll mit MouseOver-Buttons realisiert werden. Ich hab 2 verschiedene Versionen getestet. 1. CSS und 2. onMouseOver / onMouseOut
    Zu erst CSS:
    Für den Button hab ich 2 GIF-Animationen erstellt. Auf jedem dieser Buttons ist eine LED drauf die bei Berührung (a:hover) langsam anfängt zu leuchten (button1) und beim verlassen des buttons langsam ausgeht (button2).
    Das ganze funktioniert auch, solange ich nur einen Button benutze.
    Sobald es aber 2 oder mehr Buttons sind, funktioniert nur noch das langsame angehen, wenn ich mit der Maus den Button berühre. Verlasse ich dann den Button wird die "Licht-geht-aus"-Ani nicht abgespielt, sondern er springt sofort zum letzten Frame. Das Licht ist dann zwar aus, aber wie gesagt, die Animation wird nicht abgespielt.

    Soviel zu CSS, kommen wir mal zu onMouseOver/onMouseOut
    Hier ist es gleich so wie bei 2 CSS-Buttons. "Licht-geht-an" wird gezeigt aber bei "Licht-geht-aus" springt er wieder zum letzten Frame der Animation.

    Ich hab dazu mal eine Test-Page erichtet um euch das ganze mal zu veranschaulichen:
    http://linus84.funpic.de

    Übrigens funktioieren alle Techniken im IE ohne Probleme, so wie ich das gerne hätte.
    Ich hab das ganze mit Firefox 2.0 und 1.5.0.7 getestet.

    Gruß
    Linus

  • Kann man als Bug durchgehen lassen. Die interne Verwaltung von animierten Gifs, gerade was Startpunkt/-frame der Animation angeht, sobald sie im Zwischenspeicher/Cache sind, ist bei Gecko nicht so perfekt. Da hat Gecko das öfter Aussetzer, besonders was das "Neustarten" der Animation angeht.

    Allerdings finde ich dein Testcase sehr gelungen. Man müsste man bei bugzilla nachsehen, ob dort schon was brauchbares in der Art eingetragen ist (vermutlich schon, aber ich hab nie nachgesehen).

  • Zitat von bugcatcher

    Kann man als Bug durchgehen lassen. Die interne Verwaltung von animierten Gifs, gerade was Startpunkt/-frame der Animation angeht, sobald sie im Zwischenspeicher/Cache sind, ist bei Gecko nicht so perfekt. Da hat Gecko das öfter Aussetzer, besonders was das "Neustarten" der Animation angeht.


    Für mich sieht es so aus, als würde Bild1 nicht durch Bild2 ersetzt, sondern das neue einfach nur darüber gelegt. Das neue wird jedesmal neu geladen und spielt daher die Animation auch komplett ab. Bild1 aber spielt die Animation 1x ab, beim betreten der Seite und wird danach nicht wieder neugeladen, bleibt daher beim letzten Frame.

    Zitat von bugcatcher

    Allerdings finde ich dein Testcase sehr gelungen. Man müsste mal bei bugzilla nachsehen, ob dort schon was brauchbares in der Art eingetragen ist (vermutlich schon, aber ich hab nie nachgesehen).


    Danke schön! Es freut mich, dass dir die Testseite gefällt.
    Auf Bugzilla hab ich mal folgendes gefunden:
    https://bugzilla.mozilla.org/show_bug.cgi?id=286962
    Es beschreibt nicht genau den gleichen Bug aber ich denke es hat damit zu tun!

    EDIT: Falls jemand eine Idee hat, wie ich das Problem umgehen kann ohne gleich einen mehrzeiligen JavaScript-Code zu verwenden, wäre ich sehr froh!

  • Zitat von Linus84

    Übrigens funktioieren alle Techniken im IE ohne Probleme, so wie ich das gerne hätte.


    Das kann ich nicht bestätigen. Bei der Seite http://linus84.li.funpic.de/index2.htm zeigt der IE7 genau das gleiche Verhalten wie der Firefox.
    Ich bin mir auch nicht so sicher, ob man eine GIF-Animation ohne Loop überhaupt ein zweites Mal abspielen lassen kann (und ob das gewollt ist)

  • Ok, also ich habs mit dem IE 6 versucht und da gehen alle Buttons wunderbar! [ironie]Kann ja sein, dass der 7er da etwas FF Quelltext drin hat ;)[/ironie]
    Den IE 7 werd ich mir denk ich gar nicht erst laden.. mag den IE generell nicht!
    BTW: Wieso sollte das nicht gewollt sein? Ich als Webdesigner kann da eigentlich nur Vorteile erkennen.
    Es ist für solche FadeIn/FadeOut-Geschichten auf jedenfall nützlich wenn man nicht gerade mit Flash arbeiten will.

  • Zitat von Linus84

    Ok, also ich habs mit dem IE 6 versucht und da gehen alle Buttons wunderbar! [ironie]Kann ja sein, dass der 7er da etwas FF Quelltext drin hat ;)[/ironie]


    Ausschließen kann man das nicht ;)

    Zitat von Linus84

    BTW: Wieso sollte das nicht gewollt sein? Ich als Webdesigner kann da eigentlich nur Vorteile erkennen.
    Es ist für solche FadeIn/FadeOut-Geschichten auf jedenfall nützlich wenn man nicht gerade mit Flash arbeiten will.


    Ja, ich forumuliers mal anders: ich bin mir nicht sicher, ob sich die Gecko-Entwickler darüber Gedanken gemacht haben, ob das nochmalige Abspielen von solchen GIFs sinnvoll sein könnte.
    (Bei den IE-Entwicklern bin ich mir übrigens relativ sicher, dass sie sich keine Gedanken gemacht haben...)

  • Zitat von Pumbaa80


    Ja, ich forumuliers mal anders: ich bin mir nicht sicher, ob sich die Gecko-Entwickler darüber Gedanken gemacht haben, ob das nochmalige Abspielen von solchen GIFs sinnvoll sein könnte.
    (Bei den IE-Entwicklern bin ich mir übrigens relativ sicher, dass sie sich keine Gedanken gemacht haben...)


    Dito, da bin ich mir auch sicher! :D
    Also ich will ja auf erreichen, dass die Animation wieder abgespielt wird.
    Vorschläge für ein evt "work-around"?

  • Also ich glaub schon, dass das ein Bug ist. Das ist ein quasi ein Instanzenproblem. Wenn man eine Grafik durch eine andere ersetzt (was man ja mit dem :hover macht), dann sollte diese völlig unabhängig von anderen Grafiken agieren. Bei dem mouseOver-Grafik klappt das ja auch immer (die wird immer für sich alleine wieder von vorne gestartet). Bei der MouseOver hingegen nicht, dabei ist es reichlich egal ob :hover oder nicht. Wenn nur eine Hover-schaltfläche auf der Seite ist, klappt ja auch alles wie gewüscht. Nur wenn mehrere vorkommen, wird die mouseOut-Grafik nicht mehr gestartet.

    Evtl. liegt es daran, dass sich die mouseOut-Teile sich die eine Grafik teilen müssen? Vielleicht hilft es die gleiche grafik einfach mehrfach abzulegen. Unschön, aber ein versuch wert? Ansonsten nur Javascript/Flash.

  • Java Script kann ich leider nicht auf der Website benutzen, da das Menü mit den Buttons dynamisch erzeugt wird und ich nur über CSS Einfluss auf die Buttons nehmen kann. Aus dem gleichen Grund kann ich auch den Button nicht mehrmals unter verschiedenen Namen abspeichern. Muss für jedne Menüpunkt die gleiche Grafik sein. Generell kann man auf kleinen Webseiten sicherlich damit auskommen.
    Aber was jetzt tun? Bei Bugzilla anmelden und den Bug posten? Hab sowas noch nie gemacht... :oops: