jquery覆盖不起作用

时间:2014-08-04 19:21:16

标签: jquery html css

Fiddle

我有一个简单的叠加联系人框,它使用CSS和Jquery来工作。

实际的盒子就像我想要的那样下降。但是包含透明黑色背景的div没有显示,我不知道为什么。

它可能很简单,我没有注意到。这是我的代码

HTML

<div class="overlay" id="overlay"></div>
<div class="box" id="box">
    <a class="boxclose" id="boxclose"></a>
    <h2>Get in touch</h2>
    <p>
        Talk to me
    </p>
</div>

CSS

.overlay{
    background-color:black;
    top:0px;
    bottom:0px;
    left:0px;
    right:0px;
    z-index:100;

}

.box{
    position:fixed;
    top:-200px;
    left:30%;
    right:30%;
    background-color:#fff;
    color:#7F7F7F;
    padding:20px;
     border:2px solid #ccc;
    -moz-border-radius: 20px;
    -webkit-border-radius:20px;
    -khtml-border-radius:20px;
    -moz-box-shadow: 0 1px 5px #333;
    -webkit-box-shadow: 0 1px 5px #333;
    z-index:101;
}

a.boxclose{
    float:right;
    width:26px;
    height:26px;
    background:url(../img/cancel.png)repeat top left;
    margin-top:-30px;
    margin-right:-30px;
    cursor:pointer;

}

最后,Jquery

<script>
    $(function () {
        $('#activator').click(function () {
            $('#overlay').fadeIn('fast', function () {
                $('#box').animate({ 'top': '160px' }, 500);
            });
        });
        $('#boxclose').click(function () {
            $('#box').animate({ 'top': '-200px' }, 500, function () {
                $('#overlay').fadeOut('fast');
            });
        });

    });
</script>

1 个答案:

答案 0 :(得分:2)

z-index仅适用于定位元素。例如,给你的叠加层一个绝对的位置。但是,您会注意到,当您这样做时,您遇到了新问题,因此请将其设置为最初使用display:none进行隐藏。

.overlay {
    background-color:black;
    top:0px;
    bottom:0px;
    left:0px;
    right:0px;
    z-index:100;
    position:absolute;
    display:none;
}

<强> jsFiddle example