Pobierz element na określonej pozycji - JavaScript


135

Używając JavaScript, jak mogę zidentyfikować element na określonej pozycji? Zasadniczo chcę napisać funkcję, która przyjmuje dwa parametry wejściowe (współrzędne xiy) i zwraca element HTML w pozycji na ekranie reprezentowanej przez parametry.


Odpowiedzi:


246

23
Gdyby tylko były document.elementsFromPoint- gdyby elementy się nakładały.
Seiyria

2
Jestem zdumiony, że to działało w ie 5.5 i nie jest dziś tak często używane.
Vlad Nicula,

Wypróbowałem tę metodę i mierzy pozycję zgodnie z dokumentem. Jak używać go względem elementu nadrzędnego?
Charas,

Jeśli na współrzędnych x, y znajduje się ramka lub ramka iframe, otrzymasz ramkę, a nie element w tym miejscu.
Elmue

13
document.elementsFromPointjest dostępny w najnowszych przeglądarkach obsługujących Webkit i Gecko, aczkolwiek eksperymentalny. Zobacz MDN .
zopieux

27

Możesz użyć natywnej elementFromPoint(x, y)metody JavaScript , która zwraca element o współrzędnych x, y w rzutni.

Zobacz wersję roboczą elementuFromPoint w3c

I przykładowy kod:

function changeColor(newColor) {
    // Get the element placed at coords (2, 2)
    var elem = document.elementFromPoint(2, 2);
    // Set the foreground color to the element
    elem.style.color = newColor;
}
<p id="para1">Change this text color using the following buttons.</p>
<button onclick="changeColor('blue');">Blue</button>
<button onclick="changeColor('red');">Red</button>

Możesz użyć setInterval()do ciągłego sprawdzania zdarzenia najechania na element, ale nie jest to zalecane, spróbuj .hover(...)zamiast tego użyć i css, aby zwiększyć wydajność aplikacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.