Если бы у меня была куча абсолютных позиционированных divs, и они накладывались друг на друга, как бы я мог получить некоторый div, чтобы выйти на фронт? Еще раз спасибо ребятам!
Есть ли способ в jQuery привести div к фронту?
Ответ 1
Это вещь CSS, а не вещь jQuery (хотя вы можете использовать jQuery для изменения css).
$('element').css('z-index', 9999); // note: it appears 'zIndex' no longer works
Или абсолютное позиционирование привнесет что-то в начало:
$('element').css('position', 'absolute');
Ответ 2
С jQuery (как вы просили):
$('#a-div').parent().append($('#a-div')); // Pop a div to the front
Странно, как все пошли с z-индексом. Зачем отменять естественный порядок укладки, когда вы можете просто поместить его на передний план в DOM?
Ответ 3
Когда вы работаете с несколькими элементами, вам нужно будет просмотреть и узнать, какой из них имеет самый высокий 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);
Ответ 4
Используйте .css() и примените атрибут позиции и атрибут z-index.
Ответ 5
Было бы излишним использовать jQuery для этого. Вместо этого используйте CSS свойство z-index:
<style type="text/css">
#myElement {
z-index: 50000;
}
</style>