【发布时间】:2011-03-15 01:50:25
【问题描述】:
如果我有一堆绝对定位的 div 并且它们重叠,我如何让某个 div 出现在前面?再次感谢大家!
【问题讨论】:
标签: jquery css jquery-ui jquery-plugins
如果我有一堆绝对定位的 div 并且它们重叠,我如何让某个 div 出现在前面?再次感谢大家!
【问题讨论】:
标签: jquery css jquery-ui jquery-plugins
使用 .css() 并应用位置属性和 z-index 属性。
【讨论】:
这是一个 CSS 的东西,而不是一个 jQuery 的东西(尽管你可以使用 jQuery 来修改 css)。
$('element').css('z-index', 9999); // note: it appears 'zIndex' no longer works
或者,绝对定位会将某些东西带到顶部:
$('element').css('position', 'absolute');
【讨论】:
为此使用 jQuery 将是矫枉过正。而是使用 CSS 的 z-index property:
<style type="text/css">
#myElement {
z-index: 50000;
}
</style>
【讨论】:
z-index: 5000000000000;
z-index高1。
当您使用多个元素时,您必须循环查看哪个具有最高的 z-index,并将顶部设置为 +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-index),您也可以再次附加元素:
$('.click-to-top').click(function(){
$(this).parent().append(this);
});
(我不知道这是否比 CSS z-index 慢。)
对于非 CSS 非 jQuery,只需再次追加即可:
// var element = document...;
element.parentNode.appendChild(element);
【讨论】:
使用 jQuery(就像你问的那样):
$('#a-div').parent().append($('#a-div')); // Pop a div to the front
奇怪的是每个人都是如何使用 z-index 的。当您可以在 DOM 中将其弹出到最前面时,为什么要覆盖自然堆叠顺序?
【讨论】:
element.style.zIndex = Date.now();
【讨论】: