多数の絶対配置されたdivがあり、それらが重なっている場合、特定のdivを前面に表示するにはどうすればよいですか?どうもありがとう!
これはCSSのものであり、jQueryのものではありません(ただし、jQueryを使用してcssを変更できます)。
$('element').css('z-index', 9999); // note: it appears 'zIndex' no longer works
または、絶対配置は何かを上にもたらします:
$('element').css('position', 'absolute');
jQueryを使用(質問したとおり):
$('#a-div').parent().append($('#a-div')); // Pop a div to the front
誰もがz-indexを使用した方法がおかしい。 DOM内で前面にポップするだけで自然なスタック順序をオーバーライドするのはなぜですか?
複数の要素を使用している場合は、ループして、最も高い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を使用するのはやり過ぎです。代わりにCSSを使用してください z-index property :
<style type="text/css">
#myElement {
z-index: 50000;
}
</style>
.css()を使用し、位置属性とz-index属性を適用します。