JavaScript/JQuery 改变滚动背景

标签 javascript jquery css

我试图找到一种为单页机制作可变背景图像的方法。基本上当用户向下滚动到“关于我们”部分时,该部分应该有一个特定的背景图像,一个用于“联系”等等。要么我找不到它,要么互联网上没有足够的关于这个主题的例子。在阅读了关于 Stack Overflow 的一些问题后,我想到了这段代码:

<style>
    body {
        background-image:url('http://7-themes.com/data_images/out/39/6901356-free-background-images.jpg');
    }
</style>
<script type="text/javascript">
    $(window).scroll(function() {
        var image_url = 'http://7-themes.com/data_images/out/39/6901356-free-background-images.jpg';
        if ($(window).scrollTop() > 800) {
            image_url = 'http://www.designbolts.com/wp-content/uploads/2014/03/Yellow-blur-background1.jpg';
        }
        $(body).css('background-image', image_url);
    });
</script>

它似乎不起作用,我不明白为什么。该网站是响应式的,因此该解决方案至少应包括一些解释,以使其适用于不同的分辨率。

最佳答案

$(window).scroll(function () {
    var image_url = 'http://7-themes.com/data_images/out/39/6901356-free-background-images.jpg';
    console.log($(window).scrollTop());
    if ($(window).scrollTop() > 800) {
        image_url = 'http://www.designbolts.com/wp-content/uploads/2014/03/Yellow-blur-background1.jpg';
    }
    $('body').css('background-image', 'url(' + image_url + ')');
    //^^^^^^                          ^^^^^^               ^^^   
});
body {
    background-image:url('http://7-themes.com/data_images/out/39/6901356-free-background-images.jpg');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>

关于JavaScript/JQuery 改变滚动背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937654/

相关文章:

javascript - Google 饼图工具提示 z-index

javascript - 在页面(哈希)链接中,获取第一个可见元素

JQuery ajax 文件通过输入文件上传到 ASP.NET

css - 垂直居中几乎适用于所有浏览器,但不适用于 IE7

javascript - 如何将跨度插入图像

javascript - 在 html 中用 1 个按钮隐藏/显示多个对象

javascript - 尽管 JSON 有效并且返回代码为 201,jQuery Ajax 返回 "parsererror"

javascript - 为什么 XPiNC 中的任何 JS 对象总是未定义?

php - 从 JavaScript 表单提交运行 PHP

javascript - 单击 anchor 标记时获取父级 <th> 的属性值