Changing background color of div on scroll

前端 未结 1 417
别那么骄傲
别那么骄傲 2020-12-06 21:33

http://jsfiddle.net/ncuydr9y/

BG color should be #1A1A1A on start then change after scrolling 210 px. Not sure where I\'m going wrong.

$(document).re         


        
相关标签:
1条回答
  • 2020-12-06 22:09

    You need to bind your scroll event to your div with id="left-panel", because that's the element that has the scrollbar on it (i.e. the element with overflow: auto and a child element larger than itself).

    Binding to document or window won't work, because in this case they are not the element with the scrollbar.

    Working Live Demo:

    $(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 Version: http://jsfiddle.net/ncuydr9y/1/

    0 讨论(0)
提交回复
热议问题