Javascript, чтобы поднять z-индекс элемента до тех пор, пока он не станет 1 над всеми его содержащими элементами

Можно ли написать Javascript-процедуру, чтобы поднять z-index элемента так, чтобы он был больше, чем все содержащиеся в нем элементы (или равный максимальному z-index если один из его содержащих элементов имеет свой z-index макс)? Если да, то как?

var e = $('[some selector]');
// ... do some stuff
// Now e will be displayed
1 ответ

Попробуйте что-то вроде этого:

var max_zi = Math.max.apply(null, $('*').map(function(){ var zi = parseInt($(this).css("z-index")); return isNaN(zi) ? 0 : zi;
}));
$("[our element]").css('z-index', max_zi+1);

Мы применяем max функцию к z-индексам элементов (все на странице с селектором '*', измените, если вы просто ищете элементы в родительском контейнере элемента), для которых задан z-индекс.

Имейте в виду, что этот метод имеет оговорку, что если элемент не расположен (например, он имеет position: static;), то он не будет иметь z-index, независимо от того, установлен ли он.

licensed under cc by-sa 3.0 with attribution.