javascript - jquery - 拉伸(stretch)背景图像以填充文档而不是窗口?

标签 javascript jquery image background background-image

我正在使用这个插件:https://github.com/srobbin/jquery-backstretch以良好的方式拉伸(stretch)背景。

所以问题是,如果文档的内容足够长而导致滚动条,那么当您滚动时,图像会保持在同一位置(看起来就像静止的背景)。您可以在他的演示中看到它:http://srobbin.com/jquery-plugins/jquery-backstretch/ (此页面使用该插件。只需滚动即可发现背景没有移动)。

我想知道是否有办法更改插件,使其不使用窗口高度或其他内容,而是使用文档高度?我看过,但没有结果。我知道在内容很长的情况下这不是一个好主意,但它仅在一个根本没有太多内容的页面上完成。实际上,唯一的问题是浏览器空间(不包括镶边)的高度是否小于 650 像素左右。

这是插件代码。据我所知,相当短且写得很好: https://github.com/srobbin/jquery-backstretch/raw/master/jquery.backstretch.js

最佳答案

我曾经遇到过同样的问题,这就是我的解决方案。

$(window).resize(bg);
function bg() {
    var imgWidth = 1088, 
        imgHeight = 858,
        imgRatio = imgWidth / imgHeight,
        bgWidth = $(document).width(),
        bgHeight = bgWidth / imgRatio;

        $('body').css({backgroundPosition: 'top center'});
        if ($(document).width() < imgWidth && $(document).height() < imgHeight && $(document).height() > bgHeight) {
            $('body').css({backgroundSize: 'auto 100%'});
        } else {
            $('body').css({backgroundSize: '100% auto'});
        }
}
bg();
$('body').css({backgroundRepeat: 'repeat-x'});
$('body').css({backgroundImage: 'url("images/bg-state/bg_static2.png")'});

注意:由于代码使用了 css3 属性background-size,因此它不会在 IE 上拉伸(stretch),您需要在代码中设置自己的图像宽度和高度。

关于javascript - jquery - 拉伸(stretch)背景图像以填充文档而不是窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4453512/

相关文章:

swift - 如何在下载后使用照片而无需再次下载?(Swift)

javascript - 调整图像大小并附加到 HTML 表单的正确方法?

html - 将图像样式设置为位于 div 的右上角

javascript - 谷歌地图 : Can't Change Marker Icon

javascript - 什么是无 null 代码以及它如何应用于 Javascript?

javascript - 当我在一个页面中有多个表单时,如何在单击提交按钮后获取特定表单的控件

javascript - 如何将字母数字检查添加到 jQuery 验证插件?

javascript - 使用 javascript 更新一个 json 文件

javascript - 如何处理环回传入的 http 请求

jquery - CSS 动画动态起始状态