10
votes

JavaScript: Obtenez la position de la souris relatif à l'élément parent

Y a-t-il un moyen d'obtenir la position de la souris par rapport à son élément parent?

Disons que j'ai une structure: xxx

quand j'apporte ma souris sur SPAN ELEMENT I BESOIN D'obtenir sa position par rapport à son élément parent (

). PageX / clientX Donnez-moi la position relative de la page / de la zone client, de sorte que cela ne fonctionne pas pour moi.

0 commentaires

3 Réponses :


22
votes

Soustrayez la position relative citrouille de l'élément parent que vous pouvez obtenir via getboundingClientRect () à partir de la position de la souris dans le client et client Pour obtenir une position relative.

Par exemple: xxx

est votre élément interne recevant l'événement et parent < / code> est la référence de votre choix pour les coordonnées.


2 commentaires

Cela ne fonctionne pas si un élément descendant utilise un positionnement relatif ou absolu.


@Robert semble que quelqu'un ajout de code à ma réponse sans lire la réponse et ajouté un code incorrect. Je l'ai mis à jour maintenant avec une meilleure méthode.



0
votes

Essayez la propriété offsetParent. http://help.dottoro.com/ljetdvkl.php

Essayez ceci: positionx = document.getElementyid ("enfant"). offsetparent.offsetleft; positionny = document.getelementyid ("enfant"). OffsetParent.offsetleft;


1 commentaires

devrait être .getelementByID (...)



5
votes

jQuery décalset () strong> Poignée de la méthode Positionnement des parents, donc

function onsomemouseevent(e) {
    var x = e.pageX - $(e.target).offset().left;
}


1 commentaires

Peut être également utile d'utiliser E.CurrentTarget, lorsque vous travaillez avec l'élément avec des éléments enfants