2009-08-11 6 views
107

En utilisant Javascript, comment puis-je identifier l'élément à une position donnée? Fondamentalement, je cherche à écrire une fonction qui prend deux paramètres d'entrée (les coordonnées x et y) et renvoie l'élément html à la position sur l'écran représenté par les paramètres.Obtenir l'élément à la position spécifiée - JavaScript

+0

[elementsFromPoint] (https://developer.mozilla.org/en-US/docs/Web/API/Document/elementsFromPoint) –

Répondre

197
+10

Si seulement il y avait 'document.elementsFromPoint' - dans le cas où les éléments se chevauchent. – Seiyria

+1

Je suis étonné que cela a fonctionné en IE 5.5 et n'est pas beaucoup utilisé aujourd'hui. –

+0

J'ai essayé cette méthode et elle mesure la position selon le document. Comment l'utiliser par rapport à l'élément parent? – Charas

24

Vous pouvez utiliser la méthode native JavaScript elementFromPoint(x, y), qui renvoie l'élément à coordonnées x, y dans la fenêtre.

Voir la elementFromPoint w3c draft

Et, un exemple de code:

<html> 
<head> 
<title>elementFromPoint example</title> 

<script type="text/javascript"> 

function changeColor(newColor) 
{ 
elem = document.elementFromPoint(2, 2); 
elem.style.color = newColor; 
} 
</script> 
</head> 

<body> 
<p id="para1">Some text here</p> 
<button onclick="changeColor('blue');">blue</button> 
<button onclick="changeColor('red');">red</button> 
</body> 
</html> 

Vous pouvez utiliser setInterval() pour vérifier en permanence l'événement de vol stationnaire de l'élément, mais il n'est pas recommandé, essayez d'utiliser .hover(...) et css au lieu d'améliorer la performance de l'application.

Questions connexes