Javascript html从视觉上查找特定元素之下或之上(与之交叉)的所有元素

问题描述 投票:1回答:1

是否可以找到特定元素位于上方/下方或与之相交的所有其他html元素?

我想确保该元素显示在所有其他元素之上,所以我想找到所有相交的元素,并将该元素的z-index设置为比所有其他元素的z-index多的值。

javascript html z-index
1个回答
0
投票

[这里是一个解决方案,假设元素的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
}
© www.soinside.com 2019 - 2024. All rights reserved.