Есть ли способ в jQuery вывести div на первый план? - PullRequest
27 голосов
/ 13 июля 2010

Если бы у меня была куча абсолютных позиционированных дивов, и они перекрывались, как бы я получил определенный див, чтобы выйти вперед?Еще раз спасибо, ребята!

Ответы [ 5 ]

40 голосов
/ 13 июля 2010

Это CSS, а не jQuery (хотя вы можете использовать jQuery для изменения css).

$('element').css('z-index', 9999);  // note: it appears 'zIndex' no longer works

Или абсолютное позиционирование выведет что-то на вершину:

$('element').css('position', 'absolute');
26 голосов
/ 24 июля 2013

С помощью jQuery (как вы и просили):

$('#a-div').parent().append($('#a-div')); // Pop a div to the front

Странно, как все пошли с z-index.Зачем отменять естественный порядок наложения, если вы можете просто вставить его в DOM?

17 голосов
/ 29 октября 2012

Когда вы работаете с несколькими элементами, вам придется пройтись по петле и посмотреть, какой из них имеет самый высокий z-индекс, и установить верхнюю часть на это + 1.

http://jsfiddle.net/forresto/Txh7R/

var topZ = 0;
$('.class-to-check').each(function(){
  var thisZ = parseInt($(this).css('zIndex'), 10);
  if (thisZ > topZ){
    topZ = thisZ;
  }
});
$('.clicked-element').css('zIndex', topZ+1);

Для не-CSS версии (если ни в одном из слоев не указан z-индекс) вы также можете просто добавить элемент снова:

$('.click-to-top').click(function(){
  $(this).parent().append(this);
});

(я не знаю, если это медленнее, чем с CSS z-index.)

Для не-CSS, не являющихся jQuery, просто добавьте его снова:

// var element = document...;
element.parentNode.appendChild(element);
1 голос
/ 13 июля 2010

Было бы излишне использовать для этого jQuery.Вместо этого используйте свойство CSS * z-index :

<style type="text/css">
  #myElement {
    z-index: 50000;
  }
</style>
1 голос
/ 13 июля 2010

Используйте .css () и примените атрибут позиции и атрибут z-index.

...