1. 程式人生 > >Jquery頁面滾動條向下拉到div的位置時,此div就固定在頂部,向上拉時返回原位置

Jquery頁面滾動條向下拉到div的位置時,此div就固定在頂部,向上拉時返回原位置

Div在網頁開啟時固定在某個位置(不一定是網頁的最頂端),當滾動條向下滾動時,頁面的頂部到達此div位置後,此div就固定在網頁的最頂部跟隨移動,當滾動條向上滾動時,頁面頂部高過此div原來的固定位置,此div就定在原位置不再跟隨滾動條移動(相當於返回原來的位置)。

網上找了下,有很多方法,但像我這麼懶的人,感覺他們的實現方式有些麻煩或者程式碼有些多,看起來也不是那麼讓人一眼就能理解,自己經過多次實踐得出一種很簡潔的方式,發出來以做備份。

<head>
    <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
            window.onload = function () {
                var pos =  $('#div1').offset();// offset() 獲得div1當前的位置,左上角座標(x,y)
                $(window).scroll(function () { //滾動條滾動事件
                    if ($(this).scrollTop() > pos.top ) {
                        $('#div1').css('width', '100px').css('top', $(this).scrollTop() - pos.top);
                    } 
                    else if ($(this).scrollTop() <=  pos.top ) {
                        $('#div1').css('width', '100x').css('top',0).css('position', 'relative');
                    }
                })
            };
    </script>
</head>

<body>
    <div id="div1" style="width:100px">
        我就是要跟著滾動條移動的div.
    </div>
</body>