Jquery - 突出显示页面其余部分的 div/灰色

标签 jquery fadeout

我正在尝试突出显示页面其余部分的 div/灰色。我的代码是:

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');
});});});});

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;
}

我所追求的是,​​只要用户将鼠标悬停在条目内容 div 上,将页面保留为灰色并突出显示他悬停的 div。

有什么想法吗? 谢谢

最佳答案

z-index 是相对于堆叠上下文的,而不是相对于文档的。如果您希望 expose 元素出现在覆盖层上,它们必须是同级元素,或者您必须使用 position:* 显式定位 .expose .

一般来说,元素必须属于同一堆栈上下文才能比较它们的 z-index 值。您可以了解有关堆叠上下文的更多信息 here .

一些补充要点:

  1. 您应该使覆盖层对指针事件透明。您可以使用pointer-events:none;
  2. 来做到这一点
  3. 当鼠标悬停在容器上时,您不需要绑定(bind)到 .expose。将处理程序与用于显示/隐藏覆盖层的处理程序并行绑定(bind)

这是更正后的代码。您可以看到工作演示here :

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;
}

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');
});

关于Jquery - 突出显示页面其余部分的 div/灰色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147451/

相关文章:

流行框架或库中的 JavaScript 命令模式

audio - Windows SOX MP4/FFMPEG 支持

javascript - jQuery 滚动事件

javascript - 当另一个 div 在 jQuery 中显示时隐藏一个 div?

jquery - 根据从下拉列表中选择的 ID 重新加载页面

jquery - 如果浏览器支持,则在新选项卡中打开链接

javascript - jQuery - 使用该插件的公共(public)方法停止插件内的动画

javascript - 为什么在 JavaScript 中使用回调,它有什么优点?

javascript - Jquery fadeOut 函数有时无法正常工作

jquery - 如何在一段时间后隐藏一个div?