javascript - 背景图像缩放

标签 javascript jquery html css

我正在构建一个网站,我希望背景图像随页面缩放,并且始终保持正确的纵横比。 background-size: covercontain 的问题在于,虽然它可以正确调整宽度尺寸,但如果您的浏览器的宽高比高于背景图像, 它开始垂直平铺。

所以我想我会写一个 jQuery 函数来解决这个问题,它对我来说非常有用:

$(window).resize(resizeBg);

function resizeBg(){
    var winWidth = window.innerWidth;
    var winHeight = window.innerHeight;
    var aspectRatio = winWidth/winHeight;
    var imageRatio = 1920/1200;
    if(aspectRatio < imageRatio)
        $("body").css("background-size", "auto " + winHeight + "px");
    else
        $("body").css("background-size", winWidth + "px auto");
}
resizeBg();

但在我把这个上线之前,我只想问问是否有人知道更好的方法来做这个或者我可以清理这个函数的方法。

谢谢。

最佳答案

有几种不同的方法可以实现这一点。我通常会尝试并坚持使用 CSS。这里只是一个 css 方法。

html

<div id="bg">
  <img src="images/bg.jpg" alt="">
</div>

CSS

#bg {
  position: fixed; 
  top: -50%; 
  left: -50%; 
  width: 200%; 
  height: 200%;
}

#bg img {
  position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  min-width: 50%;
  min-height: 50%;
}

在 csstricks.com 的一篇帖子中,它探讨了所有不同的方法,包括优缺点 + 演示。我在探索这个问题的时候发现它很有用。

http://css-tricks.com/perfect-full-page-background-image/

关于javascript - 背景图像缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846148/

相关文章:

javascript - Jquery、Javascript : Push a 2D array

php - 连接到远程服务器并执行简单的数据库查询时出现问题

html - 对图像使用绝对路径与相对路径

javascript - 如何在 JavaScript 中转换字符串日期

javascript - jQuery获取数组的特定属性

javascript - Canvas 外推页脚

html - 什么是完整性和跨域属性?

javascript - 如何引用多个 HTML 元素以用于 javascript/jQuery 函数?

javascript - 如何使用jquery将div加载到html中

javascript - 使用JSON填充列表项