ShadowRoot: метод elementsFromPoint()
Нестандартный: Эта функция нестандартная и не соответствует стандартам. Не используйте её на сайтах, работающих с веб-браузерами: она может не работать для всех пользователей. Также могут быть значительные различия в реализации и поведении в будущем.
Метод elementsFromPoint() интерфейса ShadowRoot возвращает массив всех элементов shadow root в указанных координатах (относительно области просмотра). Элементы упорядочены сверху вниз (по порядку отображения).
Он работает аналогично методу ShadowRoot.elementFromPoint. Некоторые браузеры возвращают только элементы shadow root, присутствующие в этом месте. Другие браузеры включают элементы за пределами shadow DOM, от элемента shadow DOM в верхнем слое до корневого узла документа, такого как элемент <html> или <svg>. В этих браузерах он работает аналогично методу Document.elementsFromPoint, но с возможностью пересечения границы тени.
Синтаксис
elementsFromPoint(x, y)
Параметры
x-
Горизонтальная координата точки, относительно левого края текущей области просмотра.
y-
Вертикальная координата точки, относительно верхнего края текущей области просмотра.
Возвращаемое значение
Массив объектов Element.
Примеры
const customElem = document.querySelector("my-custom-element");
const shadow = customElem.shadowRoot;
const elements = shadow.elementsFromPoint(20, 20);
const msg = elements.map((el) => el.localName).join(" < ");
if (msg) {
console.log(msg);
} else {
console.log("The custom element had no descendants at x: 20, y: 20.");
}
Если <my-custom-element> находится вблизи верхнего левого угла области просмотра и содержит один <div>, вышеприведённый код может вернуть одно из следующих значений, в зависимости от реализации браузера:
div div < my-custom-element < body < html
Спецификации
Не является частью какого-либо стандарта.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
elementsFromPoint |
53До Chrome 66 этот метод возвращалnull когда элемент был дочерним узлом узла-хоста. См. ошибку 40537452. |
79 | 63 | 40 | 11.1 | 53До Chrome Android 66 этот метод возвращалnull когда элемент был дочерним узлом узла-хоста. См. ошибку 40537452. |
63 | 41 | 11.3 | 6.0До Samsung Internet 9.0 этот метод возвращалnull когда элемент был дочерним узлом узла-хоста. См. ошибку 40537452. |
53До WebView Android 66 этот метод возвращалnull когда элемент был дочерним узлом узла-хоста. См. ошибку 40537452. |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/elementsFromPoint