Ich habe derzeit ein div, das mit anderen Elementen darin strukturiert ist.
Ähnliches wie unten;
%Vor% Ich versuche, die Mausposition relativ zum div mit der ID container
zu bekommen.
Bisher habe ich das;
%Vor% Das funktioniert gut, wenn das div mit der ID container
keine Kinder hat. Wenn das container
div-Element untergeordnete Elemente enthält, werden die Mauskoordinaten relativ zum untergeordneten Element und nicht zum übergeordneten Element abgerufen.
Was ich damit meine ist, dass wenn die Maus sich an einer Position von x: 51, y: 51
relativ zum Eltern-Div befindet, würde sie x: 1, y: 1
relativ zum Child-Div zurückgeben, unter Verwendung des obigen HTML.
Wie kann ich erreichen, was ich will, keine Bibliotheken bitte.
BEARBEITEN
tymeJV hat freundlicherweise von dem, was oben passiert, berichtet.
Im Wesentlichen: 'Mausposition' - 'Elternelementposition' = 'Mausposition relativ zum Elternelement'
Also hier habe ich deine Funktion geändert:
%Vor%Hier ist eine funktionierende Demo-Geige . Wie Sie im Code nachlesen können, wird auch die Bildlaufposition des Dokuments angezeigt.
PPKs Artikel über ' Ereigniseigenschaften ' und ' Position finden " sind (wie immer) eine gute Lektüre!
Hoffe, das hilft!
Aktualisierung:
Ich habe tatsächlich einen Fehler im ppk-Code gefunden (wie selten ist das ?!): Ich korrigierte den fehlerhaften var
in:
if (!e) var e = window.event;
zu if (!e){e = window.event;}
Die angenommene Antwort funktionierte bei mir nicht in Chrome. Hier ist, wie ich es gelöst habe:
%Vor%Holen Sie sich die Eigenschaften screenX und screenY, um zu sehen, wo sich die Maus auf dem Bildschirm befindet (und möglicherweise scrollHeight berücksichtigen!).
Dann holen Sie sich das linke und obere Ende des Containerelements und berechnen Sie den Abstand zwischen ihnen: das ist die Position der Maus im Element.
Weitere Informationen finden Sie Ссылка .
Tags und Links javascript events mousemove