Javascript html найти все элементы визуально под или над (пересекаются) с указанным c элементом - PullRequest
1 голос
/ 22 апреля 2020

Есть ли способ найти все другие элементы html, над которыми указанный / 1007 * элемент находится над / под или пересекается?

Я хочу убедиться, что элемент отображается над всеми другие, поэтому я хочу найти все пересекающиеся элементы и установить для z-index элемента значение больше, чем для всех других элементов z-index s.

1 Ответ

0 голосов
/ 23 апреля 2020

Вот одно решение, предполагающее, что элемент имеет 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...