IE gibt falsche Event-Koordinaten heraus
cham
- dhtml
Hi,
Hier zunächst mal die Grundsituation:
Um ein dynamisches Menü an einer beliebigen Stelle der Seite einbinden zu können habe ich dessen Elemente (absolut positionierte div's) in einen relativ positionierten div verfrachtet (top: 0px; left: 0px), damit sich also die absoluten Positionsangaben der Menüelemente auf eben diesen Container beziehen.
Soweit klar hoffe ich.
Ich habe also jetzt beispielsweise einen grafischen Header über der Seite, dessen Höhe mir vollkommen egal sein kann. Darunter setze ich nun das Menü (den Container).
Per negativem margin-top habe ich den Container dann noch 45 Pixel angehoben, so dass die Haputmenüzeile über der Header-Grafik liegt (rein optische Gründe).
Hoffentlich immer noch verständlich ;)
Und jetzt zum Problem:
Die Menüelemente haben JS-Tooltips (anhand der eventkoordinaten ausgerichtete divs). Und genau die machen Probleme im IE:
Der meint nämlich scheinbar einfach die top/left-Werte der Menüelemente zurückgeben zu können. Das führt dann dazu, dass die Tooltips so angezeigt werden, als wäre das Menü in der oberen linken Ecke des Viewports (0,0).
Ich kann NICHT einfach was draufaddieren, weil ich ja nicht weiss, wo das Menü grade abhängt (siehe Anfang).
Hat jemand eine Idee oder schonmal so ein Problem gehabt?
Ach ja, die Koordinaten bestimme ich folgendermaßen:
var l_lY = (p_oEvt) ? p_oEvt.pageY : window.event.y + document.body.scrollTop;
Im Fall IE also der hintere Teil.
hi,
Ich kann NICHT einfach was draufaddieren, weil ich ja nicht weiss, wo das Menü grade abhängt (siehe Anfang).
Dann finde es doch heraus ...
http://de.selfhtml.org/javascript/objekte/all.htm#offset_left ff.
gruß,
wahsaga
Hmmm nett,
herzlichen Dank,
ich werde es nachher mal implementieren und dann beischeidsagen...
OK, funktioniert wunderbar...
Ich habe das ganze dann noch in eine Schleife gepackt, so dass alle übergeordneten Elemente noch mit einbezogen werden. Das Ganze bricht dann fußgesteuert ab, nachdem das body-tag berücksichtigt wurde.
Brauchen tut man das ganze nur im IE Zweig des Scripts, Mozilla-kompatible Browser kommen scheinbar auch mit e.pageX / pageY aus...
Danke nochmal
mfg cham