jQuery背景图像在缩放或窗口调整大小时调整大小

时间:2013-07-29 08:03:36

标签: javascript jquery image zoom

我遇到了问题。 我想要一个div容器中的背景图像,其宽度为窗口的100%。 我希望它在缩放时发生变化,当我调整窗口大小时它会调整大小。

这是我的尝试:

var imageWidth = 1024;
var imageHeight = 600;

$(document).ready(function(){
    jQuery(window).resize(function(){
        resizeImage();
        api.reinitialise();
    }   
}

$(window).resize(function () {resizeImage()});

function resizeImage() {
var navWidth = jQuery(window).width();
var navHeight = jQuery(window).height();
var navRatio = navWidth / navHeight;
var imageRatio = imageWidth / imageHeight;
if (navRatio > imageRatio) {
    var newHeight = (navWidth / imageWidth) * imageHeight;
    var newWidth = navWidth;
} else {
    var newHeight = navHeight;
    var newWidth = (navHeight / imageHeight) * imageWidth;
}
var newTop = 0 - ((newHeight - navHeight) / 2);
var newLeft =  0 - ((newWidth - navWidth) / 2);
$('#image').css({height: navHeight, width: navWidth});
$('#image img').css({height: newHeight, width: newWidth, top: newTop, left: newLeft});
$('#image').css({visibility:"visible", display:"block"});
}
img { border:0px; }
html { height:100%; }
body { width: 100%; height: 100% ; text-align:left; font: normal 12px Arial}
div#image {position:fixed; z-index:98; display:block;}
div#image img {overflow:hidden; position:absolute; z-index:99;}
<head>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    <script type="text/javascript" src="test.js"></script>
</head>
<body>
    <div id="image"><img src="http://www.cdelit.com/images/rocketlauncher/frontpage/showcase/img2.png" alt="" /></div>
</body>

现在的问题是,图像的大小调整为错误。

2 个答案:

答案 0 :(得分:1)

你知道你可以用多种方式使用css(3)来实现这个目的吗? http://css-tricks.com/perfect-full-page-background-image/

    html { 
    background: url(images/bg.jpg) no-repeat center center fixed; 
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    }

答案 1 :(得分:0)

$(window.innerWidth).on('change', function(){

});