ShadowRoot: elementsFromPoint() 方法
非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。
ShadowRoot 介面的 elementsFromPoint() 方法會返回指定座標(相對於視口)處所有 Shadow Root 元素的陣列。這些元素按顯示堆疊順序(z-order)從最頂層到最底層排序。
它的操作方式與 ShadowRoot.elementFromPoint 方法類似。一些瀏覽器只會返回位於該位置的 Shadow Root 元素。其他瀏覽器則會包含 Shadow DOM 元素之外的元素,從最頂層的 Shadow DOM 元素一直到文件的根節點,例如 <html> 或 <svg> 根元素。在這些瀏覽器中,它的操作方式類似於 Document.elementsFromPoint 方法,但能夠跨越 Shadow 邊界。
語法
js
elementsFromPoint(x, y)
引數
返回值
一個 Element 物件的陣列。
示例
js
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
規範
不屬於任何標準。
瀏覽器相容性
載入中…