是否可以找到特定元素位于上方/下方或与之相交的所有其他html元素?
我想确保该元素显示在所有其他元素之上,所以我想找到所有相交的元素,并将该元素的z-index
设置为比所有其他元素的z-index
多的值。
[这里是一个解决方案,假设元素的z-index
属性设置为style
,而不是从CSS通过计算机获取:(代码在打字稿中)
export function getMaxZIndexOfOverlappingElements(target: HTMLElement): number {
const zIndexElements = Array.from(document.querySelectorAll("*[style*=z-index]"))
let zIndex = 0
zIndexElements.forEach(el => {
if (el instanceof HTMLElement && overlap(target, el)) {
try {
zIndex = Math.max(zIndex, parseInt(firstNotEmpty(el.style.zIndex, "0")))
} catch (e) {
// skip invalid zIndex value
}
}
})
return zIndex
}