javascript - 在滚动条上更改 div 的背景颜色

标签 javascript jquery css background-color

http://jsfiddle.net/ncuydr9y/

BG 颜色在开始时应为#1A1A1A,然后在滚动 210 像素后更改。不确定我哪里出错了。

$(document).ready(function(){       
        var scroll_pos = 0;
        $(document).scroll(function() { 
            scroll_pos = $(this).scrollTop();
            if(scroll_pos > 210) {
                $("#left-panel").css('background-color', '#1A1A1A');
            } else {
                $("#left-panel").css('background-color', 'red');
            }
        });
    });

最佳答案

您需要使用 id="left-panel" 将您的滚动事件绑定(bind)到您的 div,因为这是具有滚动条的元素(即元素overflow: auto 和一个比自身大的子元素)。

绑定(bind)到 documentwindow 将不起作用,因为在这种情况下它们不是带有滚动条的元素。

工作现场演示:

$(document).ready(function () {
    var scroll_pos = 0;
    $("#left-panel").scroll(function () {
        scroll_pos = $(this).scrollTop();
        if (scroll_pos > 210) {
            $("#left-panel").css('background-color', '#1A1A1A');
        } else {
            $("#left-panel").css('background-color', 'red');
        }
        console.log(scroll_pos);
    });
});
#left-panel {
    position: fixed;
    top: 0;
    left: 0;
    width: 80%;
    height: 100%;
    z-index: 2;
    overflow:auto;
    height:2000px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="left-panel">
    <div style="height:5000px;">CONTENT</div>
</div>

JSFiddle 版本:http://jsfiddle.net/ncuydr9y/1/

关于javascript - 在滚动条上更改 div 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32675604/

相关文章:

css - 如何保留 Gist 的 CSS?

javascript - 加载复杂对象以存储在 sencha touch 1.1 中

javascript - Protractor 自动化 :scripts is waiting longer time to execute between the steps

javascript - 当我告诉输入字段不要清除文本时,它正在清除文本

javascript - 仅使用 html css 和 js 为来自移动设备的请求呈现不同的 html 页面

html - div 中的文本溢出。无法将文本放入移动设备的 div 中

javascript - 如何获取单击的表行的 TBODY?

javascript - 将图像添加到范围时未终止的字符串文字

javascript - 使用 javascript 获取我当前的地址

javascript - 如何在页面滚动后显示时对 CSS3 动画进行排队(提供的 JSFiddle)