1

我让它正常运行,给我的包装器一个黑色的背景,上面有一个不透明的。当我尝试将背景颜色更改为没有不透明度时,问题就出现了,我的内容似乎落后于背景图像。

编码

<img src="bg.jpg" id="bg" alt="">
<div class="wrapper">
    <div class="main">
        <h1>Full Screen</h1>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tempus, sem id feugiat lobortis, felis velit dignissim sem, et pretium orci est et magna. Nunc non massa id odio ultrices varius. Nulla consequat sollicitudin erat sed condimentum. Cras vel magna ut tellus rhoncus dictum. Nulla dictum adipiscing quam vel condimentum. Aliquam accumsan quam in libero vehicula vel sodales justo tempus. Duis mattis leo a urna feugiat eleifend. Suspendisse cursus molestie est ornare sodales. Sed justo risus, mattis a tincidunt facilisis, mattis porta tortor. Nunc ac quam justo.</p>
    </div>
</div>

的CSS

#bg { 
    position: fixed; top: 0; left: 0; 
}
.bgwidth {
    width: 100%;
}
.bgheight {
    height: 100%; 
}
.wrapper{
    width:960px;
    /*border-radius: 10px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    box-shadow: 0px 0px 10px #000;
    background-color:#000;
    filter: alpha(opacity=30);
    opacity: 0.3;*/
    background-color:#000;
    margin-left:auto;
    margin-right:auto;
}

js

$(window).load(function() {    

    var theWindow        = $(window),
        $bg              = $("#bg"),
        aspectRatio      = $bg.width() / $bg.height();

    function resizeBg() {

        if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
            $bg
                .removeClass()
                .addClass('bgheight');
        } else {
            $bg
                .removeClass()
                .addClass('bgwidth');
        }

        var newWidth = theWindow.width()-$bg.width();
        var newHeight = theWindow.height()-$bg.height();
        //alert(newWidth + "-"+ newHeight);
        $bg.css("left",(newWidth/2)+"px");
        $bg.css("top",(newHeight/2)+"px");
    }

    theWindow.resize(function() {
        resizeBg();
    }).trigger("resize");

});
4

1 回答 1

1

我已经更新了@deltree 的 jsfiddle。http://jsfiddle.net/trickeedickee/79aXy/2/

当您删除不透明度时,您需要添加position: relative;到您.wrapper的,它会为您工作。

.wrapper {
    position: relative;
    }

我希望这有帮助。

于 2012-05-23T19:02:56.950 回答