【问题标题】:Changing background color of div on scroll在滚动时更改 div 的背景颜色
【发布时间】:2015-12-16 23:53:08
【问题描述】:

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');
            }
        });
    });

【问题讨论】:

    标签: javascript jquery css background-color


    【解决方案1】:

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

    绑定到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/

    【讨论】:

    • 啊,我明白了。谢谢你。如何让面板在页面加载开始时变为红色。现在它只是默认的白色。
    • 您可以通过 CSS 将其设置为红色,如下所示:#left-panel{background-color: red}(首选),或者您可以通过在 document.ready 函数顶部复制以下行来在 JavaScript 中初始设置它: $("#left-panel").css('background-color', 'red');.
    • 如果我添加一个过渡,它会闪烁。
    • @user2252219 “添加过渡”是什么意思?
    • 啊,非易失性。这是因为我有一个可见性切换。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2013-02-23
    • 2021-01-01
    • 2017-04-23
    • 1970-01-01
    • 2014-06-30
    相关资源
    最近更新 更多