我正在尝试突出显示页面其余部分的div/grey.我的代码是:
jQuery(document).ready(function ($) {
$('.entry-content').mouseover(function(e) {
$('.expose').mouseover(function(e){
$(this).css('z-index','99999');
$('#overlay').fadeIn(300);
});
});
$('.entry-content').mouseleave(function(e) {
$('.expose').mouseleave(function(e){
$('#overlay').fadeOut(0, function(){
$('.expose').css('z-index','1');
});});});});
Run Code Online (Sandbox Code Playgroud)
HTML看起来像
<div id="overlay">
<div class="entry-content">
<div class="expose">something</div>
<div class="expose">something</div>
<div class="expose">something</div>
</div>
#overlay {
background:rgba(0,0,0,0.3);
display:none;
width:100%; height:100%;
position:absolute; top:0; left:0; z-index:99998;
}
Run Code Online (Sandbox Code Playgroud)
我所追求的是只要用户在入口内容div上盘旋,让页面变灰并突出显示他正在盘旋的div.
有任何想法吗?谢谢
A z-index相对于堆叠上下文,而不是相对于文档.如果您希望expose元素显示在叠加层上,它们必须是兄弟元素,或者您必须.expose使用明确定位position:*.
通常,元素必须是相同堆叠上下文的一部分,以便比较它们的z-index值.您可以在此处了解有关堆叠上下文的更多信息.
一些额外的要点:
pointer-events:none;.expose当容器被鼠标悬停时,您不需要绑定.将处理程序与处理程序并行绑定以显示/隐藏叠加层这是更正后的代码.你可以在这里看到一个工作演示:
CSS:
#overlay {
background:rgba(0,0,0,0.3);
display:none;
width:100%;
height:100%;
position:absolute;
top:0;
left:0;
z-index:99998;
pointer-events:none
}
.expose{
background-color:red;
position:relative;
}
Run Code Online (Sandbox Code Playgroud)
JS:
$('.entry-content').hover(function() {
$('#overlay').fadeIn(300);
}, function() {
$('#overlay').fadeOut(300);
});
$('.expose').hover(function(e) {
$(this).css('z-index', '99999');
},function(e) {
$(this).css('z-index', '1');
});
Run Code Online (Sandbox Code Playgroud)