Spec-Zone.ru › Web APIs

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.

См. также

  • ShadowRoot.elementsFromPoint()
  • Document.elementFromPoint()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API