Получить элемент в указанной позиции - JavaScript


133

Как с помощью Javascript определить элемент в заданной позиции? В основном я хочу написать функцию, которая принимает два входных параметра (координаты x и y) и возвращает элемент html в позиции на экране, представленной параметрами.


Ответы:


241

22
Если бы тоже были document.elementsFromPoint- на случай, если элементы перекрываются.
Seiyria

2
Я удивлен, что это работало, например, в 5.5, а сегодня не используется.
Влад Никула

Я пробовал этот метод, и он измеряет положение в соответствии с документом. Как использовать его относительно родительского элемента?
Charas

Если в координате x, y есть фрейм или iframe, вы получите фрейм, а не элемент в этом месте.
Elmue

13
document.elementsFromPointдоступен в последних версиях браузеров с поддержкой Webkit и Gecko, хотя и является экспериментальным. См. MDN .
zopieux 04

27

Вы можете использовать собственный elementFromPoint(x, y)метод JavaScript , который возвращает элемент с координатами x, y в области просмотра.

Смотрите elementFromPoint w3c draft

И пример кода:

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>

Вы можете использовать setInterval()для непрерывной проверки события зависания элемента, но это не рекомендуется, попробуйте .hover(...)вместо этого использовать и css для повышения производительности приложения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.