Robert: Opera: Mouseover bei Bild in position: fixed/absolute

Beitrag lesen

Ich beobachte gerade ein sehr seltsames Verhalten von Opera (9.23) bei einem onmouseover / onmouseout auf ein Bild, das innerhalb eines Div mit position: fixed bzw. absolute liegt und selbst nochmals auf position: absolute gesetzt ist (um das Bild vertikal mittig zu platzieren, wie hier beschrieben).

Im Firefox funktioniert es wie gewünscht, der IE7 zeigt auch keinerlei Probleme (der IE6 mit dem Workaround für position: fixed auch nicht), nur Opera scheint das nicht ganz zu mögen.

Eigentlich wollte ich jetzt fragen, wieso das so ist, mit allerlei Beschreibungen und Fehlersuche, allerdings scheint ich nun endlich dahintergekommen zu sein:
Bei Opera darf der fixierte Bereich nicht anders vertikal positioniert sein (top: xx), als der Margin-Wert des <body>.
Ansonsten kommt es zu dem Verhalten, was man auf der Seite beobachten kann, die ich hochgeladen habe: Klick

Der Balken 1 funktioniert wie gewünscht. Hier wird das Bild ausgetauscht bei einem Mouseover (top: 0).
Der Balken 2 funktioniert zunächst auch wie gewünscht. Allerdings wird beim Mouseout die Hälfte des Bildes "vergessen" (top: 30px).
Balken 3 schließlich funktioniert gar nicht mehr. Hier scheint das Bild irgendwie außerhalb irgendeines Bereiches gerutscht zu sein (top: 60px).

Die Höhe des Bildes beträgt 50px. Ein top: 50px reicht noch nicht aus, um bei Balken 3 wieder irgendeine sichtbare Reaktion hervorzurufen. Bei top: 49px erfolgt dann wieder eine (falsche) Reaktion.

Verändert man jetzt das Margin des Bodys auf 30px, funktioniert der zweite Balken, dafür der erste nicht mehr.

Das Mouseover an sich funktioniert. Bei einem Test mit onmouseover="alert('over');" und onmouseout="alert('out');" bekam ich jedoch folgende Reihenfolge, wenn ich über das Bild gefahren bin (unabhängig jetzt, ob es funktioniert oder nicht): 'over' - 'out' - 'over'. Bei FF und IE erschien einfach nur 1x 'over', bis ich den Mauszeiger wieder herunterfuhr. Ist das ein normales Opera-Verhalten, oder war es ganz einfach die Javascript-alerts, die den Mouseover-Effekt unterbrechen (was sie dann nur in Opera tun), und ohne die alerts wäre der Ablauf auch einfach nur 'over' gewesen?

Dieser *pieeep* Fehler hat mich heute den halben Tag gekostet. Ist das ein Bug, oder ein bereits bekanntes Verhalten mit einem möglichen Workaround?
Eventuell eine andere Möglichkeit, das Bild vertikal zu zentrieren?