ShadowRoot: метод elementFromPoint()
Нестандартный: Эта функция нестандартна и не входит в стандарт. Не используйте её на сайтах, ориентированных на веб, в производственной среде: она может не работать для всех пользователей. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.
Метод elementFromPoint(), доступный для объекта ShadowRoot, возвращает элемент на верхнем слое тенистого корня по заданным координатам относительно области просмотра (корень тени, наиболее высокий в порядке отображения Z, способный получать события указателя). Элементы тенистого корня, у которых свойство pointer-events установлено в none игнорируются.
Если заданная точка находится за пределами области тенистого корня, результат undefined.
Синтаксис
elementFromPoint(x, y)
Параметры
x-
Горизонтальная координата точки, относительно левого края текущей области просмотра.
y-
Вертикальная координата точки, относительно верхнего края текущей области просмотра.
Возвращаемое значение
Объект Element; элемент верхнего тенистого корня, расположенный по указанным координатам, если таковой имеется.
Примеры
В этом примере, предполагая наличие <template> в HTML, мы определяем <my-custom-element>. Если добавленный пользовательский элемент примыкает к верхнему левому углу области просмотра или какая-либо его часть перекрывает этот угол, элементу, который является верхним слоем в этом месте в пользовательском элементе, будет задана тонкая пунктирная красная граница.
customElements.define(
"my-custom-element",
class extends HTMLElement {
constructor() {
super();
const templateContent = document.getElementById(
"my-custom-element-template",
).content;
const sRoot = this.attachShadow({ mode: "open" });
sRoot.appendChild(templateContent.cloneNode(true));
// get the topmost element in the top left corner of the viewport
const srElement = this.shadowRoot.elementFromPoint(0, 0);
// apply a border to that element
srElement.style.border = "1px dashed red";
}
},
);
Спецификации
Не является частью какого-либо стандарта.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
elementFromPoint |
53До Chrome 66 этот метод возвращалnull если элемент был дочерним узлом узла-хоста. См. баг 40537452. |
79 | 63 | 40До Opera 53 этот метод возвращалnull если элемент был дочерним узлом узла-хоста. См. баг 40537452. |
10.1 | 53До Chrome Android 66 этот метод возвращалnull если элемент был дочерним узлом узла-хоста. См. баг 40537452. |
63 | 41До Opera Android 47 этот метод возвращалnull если элемент был дочерним узлом узла-хоста. См. баг 40537452. |
10.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/elementFromPoint