Fügen Sie den Offset des Ereignisses zum übergeordneten Element-Offset hinzu, um die absolute Offset-Position des Ereignisses zu erhalten.
Ein Beispiel:
HTMLElement.addEventListener('mousedown',function(e){
var offsetX = e.offsetX;
var offsetY = e.offsetY;
if(e.target != this){ // 'this' is our HTMLElement
offsetX = e.target.offsetLeft + e.offsetX;
offsetY = e.target.offsetTop + e.offsetY;
}
}
Wenn das Ereignisziel nicht das Element ist, das das Ereignis registriert wurde, ist es die die Mutter des aktuellen Ereignis, um Offset Offset addiert die „Absolut“ Offset zu berechnen Wert.
Nach Mozilla Web API: „The HTMLElement.offsetLeft schreibgeschützte Eigenschaft gibt die Anzahl der Pixel, die die obere linke Ecke des aktuellen Elements nach links innerhalb des Knotens HTMLElement.offsetParent Offset.“
Dies geschieht hauptsächlich, wenn Sie ein Ereignis auf einem übergeordneten Objekt registriert haben, das mehrere weitere untergeordnete Objekte enthält, z. B. eine Schaltfläche mit einem inneren Symbol oder einer Textspanne, ein li
Element mit inneren Bereichen. etc...
Element positioniert "statisch" sind keine Offset-Eltern. – Esailija
rechts; Mein Fehler – jackwanders
Verwenden Sie keine Semikola in Klammern, verwenden Sie Kommas –