jQuery .css正文不透明度

时间:2012-08-06 10:03:48

标签: javascript jquery css popup

我有一个新闻标签,每当用户点击它时,弹出框会显示详细信息,但我希望背景或正文标记本身变暗,所以我写道:

$("#read").click(function(){
    $("#pbox").fadeIn('slow');
    $("body").css({"opacity": "0.5"});
});

然而盒子本身也会变暗。有没有办法让盒子忽略这个命令?或许还有另一种方式?

2 个答案:

答案 0 :(得分:11)

由于正文包含#pbox,因此框本身将受到您应用的50%不透明度的影响。一个更好的方法是在整个窗口上覆盖半透明div,然后在它上面放置#pbox,就像这样:

#overlay {
    position: fixed;
    top: 0;
    left: 0;
    background-color: #fff;
    width: 100%;
    height: 100%;
    display: none;
}

#pbox {
    z-index: 1;
}

所以在这里你的白色#overlay div出现在所有内容上,不透明度为50%。上面是指定了z-index的#pbox,以确保它显示在顶部。

jQuery代码有点像这样:

$("#read").click(function(){
    $("#pbox").fadeIn('slow');
    $("#overlay").show().css({"opacity": "0.5"});
});

答案 1 :(得分:3)

不幸的是,没有。由于弹出窗口位于body标签内,因此它包含在不透明度的变化中。

这样做的唯一方法是制作覆盖整个身体并且半透明的覆盖层,然后将弹出窗口置于其上方。