molily: div an Mauskoordinaten ausrichten bei position:relative für body

Beitrag lesen

Hallo,

Willst du das wirklich ohne jQuery machen? Gibt es einen Grund, warum du Low-Level arbeitest (sogar mit DOM-0-Event-Handling)? Programmierst du für alte IEs?

Wenn du jQuery nicht verwenden willst, kannst du dich durch die Untiefen von jQuery wühlen, um dich in die Offset-Problematik einzuarbeiten:

2.x-Branch (neuere Browser): https://github.com/jquery/jquery/blob/master/src/offset.js
1.x-Branch (oldIE-Unterstützung): https://github.com/jquery/jquery/blob/1.x-master/src/offset.js

Siehe
http://api.jquery.com/offset/
http://api.jquery.com/position/
http://api.jquery.com/offsetParent/

Vom Ablauf her: Mausposition relativ zum Dokument (Viewport) holen, den Offset des ERSTEN offsetParents relativ zum Dokument berechnen (getBoundingClientRect mit Fallback) und davon substrahieren, dann hast du die Werte für left und top. Denn left und top beziehen sich ja auf dieses erste Element mit position: relative/absolute/fixed. Das ist hier anscheinend das main-Element.

Das sind in jQuery vielleicht vier Zeilen, ohne jQueryist das eine Menge Code, wenn man es richtig und für alte Browser machen will.

Mathias