Вы можете создать getHighestZindex
функцию, которая определяется следующим образом:
function getHighestZindex(elem)
{
const elems = document.getElementsByTagName(elem);
let top = 0;
for (let i = 0; i < elems.length; i++)
{
const zindex = document.defaultView.getComputedStyle(elems[i],null).getPropertyValue("z-index");
if ((zindex > top) && (zindex != 'auto'))
{
top = zindex;
}
}
return top;
}
Вы можете вызвать getHighestZIndex
для определенного типа элемента, такого как 'DIV', например:
getHighestZIndex('div');
РЕДАКТИРОВАТЬ
Будет два варианта использования, чтобы проверить, какой элемент находится наверху
- Если ни один из элементов не имеет
z-index
, определенного в css - Если какой-либо элемент или все элементы имеют спецификации c
z-index
, определенные в css.
Таким образом, в функцию будет добавлена проверка has_allauto
...
Допустим, у вас есть код html
, как показано ниже:
<div id="block-1">
<div id="inner-block"></div>
</div>
<div id="block-2"></div>
, и чтобы проверить, какой элемент находится на виде сверху, функция будет выглядеть, как показано ниже:
function getHighestZindex(elem) {
const elems = document.getElementsByTagName(elem);
let id = "";
let top = 0;
let has_allauto = true;
for (let i = 0; i < elems.length; i++) {
const zindex = document.defaultView
.getComputedStyle(elems[i], null)
.getPropertyValue("z-index");
if (zindex !== "auto") {
has_allauto = false;
}
if (zindex > top && zindex != "auto") {
top = zindex;
id = elems[i].id;
}
}
if(has_allauto) {
id = elems[elems.length-1].id;
}
return id;
}
Это вернет id
элемента, который находится в верхней части представления.
Рабочий пример Пример