2009-08-11 24 views
107

Używając JavaScript, jak mogę zidentyfikować element na danej pozycji? Zasadniczo zamierzam napisać funkcję, która pobiera dwa parametry wejściowe (współrzędne x i y) i zwraca element html w pozycji na ekranie reprezentowane przez parametry.Zdobądź element w określonej pozycji - JavaScript

+0

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

Odpowiedz

197
+10

Jeśli tylko tam były 'document.elementsFromPoint' - w przypadku, gdy elementy nakładają się. – Seiyria

+1

Jestem zdumiony tym, że zadziałało to np. 5,5 i dzisiaj nie jest tak często używane. –

+0

Próbowałem tej metody i mierzy pozycję zgodnie z dokumentem. Jak używać go względem elementu nadrzędnego? – Charas

24

Można użyć natywną JavaScript elementFromPoint(x, y) metodę, która zwraca element o współrzędnych X, Y w rzutni.

Zobacz elementFromPoint w3c draft

I, przykładowy kod:

<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> 

Można użyć setInterval() stale sprawdzać zdarzenia najechaniu elementu, ale nie jest to zalecane, spróbuj użyć .hover(...) i CSS zamiast do zwiększenia wydajność aplikacji.

Powiązane problemy