Отримайте елемент у визначеній позиції - JavaScript


133

Як за допомогою Javascript я можу визначити елемент у заданій позиції? В основному я шукаю написати функцію, яка приймає два вхідні параметри (координати x і y) і повертає html-елемент у положення на екрані, представлене параметрами.


Відповіді:


241

22
Якби там також було document.elementsFromPoint- у випадку, якщо елементи перекриваються.
Seiyria

2
Я вражений, що це працювало в 5,5, і сьогодні він не використовується так багато.
Влад Нікула

Я спробував цей метод, і він вимірює позицію згідно з документом. Як я можу використовувати його відносно батьківського елемента?
Чарас

Якщо на координаті x, y є кадр або рамка, ви отримаєте кадр, а не елемент у цьому місці.
Elmue

13
document.elementsFromPointдоступний в останніх веб-переглядачах із підтримкою Webkit та Gecko, хоча й експериментальним. Див. MDN .
zopieux

27

Ви можете використовувати нативний elementFromPoint(x, y)метод JavaScript , який повертає елемент у координатах x, y у вікні перегляду.

Дивіться чернетку елементаFromPoint w3c

І, зразок коду:

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.