Es gibt viele Beispiele für die Verwendung von JQuery zum Abrufen der Mauskoordinaten, aber keine behoben mein Problem.
Der Text meiner Webseite ist 1000 Pixel breit und ich zentriere ihn in der Mitte des Browserfensters des Benutzers.
body {
position:absolute;
width:1000px;
left: 50%;
margin-left:-500px;
}
Jetzt, in meinem JavaScript-Code, wenn der Benutzer auf meiner Seite rechts geklickt hat, wollte ich einen div an der Mausposition angezeigt werden.
Problem ist, nur mit e.pageX Wert war nicht ganz richtig. Es würde gut funktionieren, wenn ich die Größe meines Browserfensters auf 1000 Pixel erweitern würde. Dann würde der Popdiv an der richtigen Position erscheinen.
Aber wenn die Größe meines Browser-Fensters zu sagen, 1200 Pixel breit, dann würde das div etwa 100 Pixel auf der rechten Seite von wo der Benutzer geklickt hatte.
Die Lösung besteht darin, e.pageX mit dem umschließenden Rechteck des Körperelements zu kombinieren. Wenn der Benutzer die Größe ihres Browserfensters ändert, „links “ der Wert des Körperelements ändert, und wir müssen dies berücksichtigen:
// Temporary variables to hold the mouse x and y position
var tempX = 0;
var tempY = 0;
jQuery(document).ready(function() {
$(document).mousemove(function (e) {
var bodyOffsets = document.body.getBoundingClientRect();
tempX = e.pageX - bodyOffsets.left;
tempY = e.pageY;
});
})
Puh. Das hat eine Weile gedauert, um es zu reparieren! Ich hoffe, das ist nützlich für andere Entwickler!
http://stackoverflow.com/questions/15494357/want-to-show-div-just-under-the-link-using-jquery-when-user-click-on-link http: // Paketüberfluss.com/questions/15635270/seltsames Verhalten-von-Drop-Down-Menü-erstellt-by-jquery – Thomas