Вот одно решение, предполагающее, что элемент имеет 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
}