Jquery - 调暗整个页面并淡化一个div元素

时间:2013-02-16 18:44:17

标签: javascript jquery z-index opacity

我正在尝试执行以下操作: - 单击一个链接,触发一个功能,显示DIV(#page-cover)调暗我的整个背景。该div的z-index为999 - 然后我希望另一个div(#red)出现在具有更高z-index的暗淡背景/淡出/显示

我的CSS:

#page-cover {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    background-color: #000;
    z-index: 999;
    top: 0;
    left: 0;
}
    #red {
    background-color: red;
    width: 100px;
    height: 100px;
}

HTML

//Triggering link
<a href="#" onclick="dimBackground("Element1")">Element 1</a>
//Div to appear upon dimmed DIV
<div id="red">hejsa</div>
//Dimming DIV
<div id="page-cover"></div>

Jquery的

function dimBackground() {
    $("#page-cover").css("opacity",0.6).fadeIn(300, function () {
        //Attempting to set/make #red appear upon the dimmed DIV
        $('#red').css('zIndex', 10000);
    });
}

页面封面按照假设逐渐消失,但是我没有任何成功使#red出现在后面。

有什么建议吗?

1 个答案:

答案 0 :(得分:10)

CSS

#page-cover {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    background-color: #000;
    z-index: 999;
    top: 0;
    left: 0;
}
    #red {
    background-color: red;
    width: 100px;
    height: 100px;
}

HTML:

//Triggering link
<a id="triggeringlink" href="#">Element 1</a>
//Div to appear upon dimmed DIV
<div id="red">hejsa</div>
//Dimming DIV
<div id="page-cover"></div>

JS

$(window).load(function(e){
  $('#triggeringlink').on('click',function(e){
     $("#page-cover").css("opacity",0.6).fadeIn(300, function () {            
        $('#red').css({'position':'absolute','z-index':9999});
     });
   e.preventDefault();
   });
});

这是一种略有不同的方法,但我认为这就是你所追求的。我们在页面加载时将click事件绑定到<a>标记,而不是内联JS。我已经更新了CSS,以便隐藏RED div,并且绝对定位 - 覆盖层上方。您可能需要拉动屏幕尺寸并将其放在中心位置,然后将其淡入,让我知道这是否是您的意图,我会更新答案。