3

我正在努力做到这一点,所以当你加载一个页面时,一个 div 会粘在它的底部。然后,当用户向下滚动时,它会停留在顶部。

我可以使用粘性元素将其粘在顶部。

<div id="container">
<div id="menu">
    <ul>
        <li><a href='#test'>Line 1</a></li>
        <li><a href='#'>Line 2</a></li>
        <li><a href='#'>Line 3</a></li>
    </ul>
</div>
</div>

<script type="text/javascript">
    $(document).ready(function(){
        $(window).scroll(function(){
           if($(this).scrollTop()>=660)
           {
           $('#menu').addClass('fixed');
           }else{
               $('#menu').removeClass('fixed');
           }
                   });
    });
    </script>

我就是做不到,所以它在负载时会粘在底部。如果不清楚,我附上了一个小模型。

黏

4

1 回答 1

9

更新。
这是工作 jsFiddle 来检查。

jQuery:

$(document).ready(function() {
    var windowH = $(window).height();
    var stickToBot = windowH - $('#menu').outerHeight(true);
    //outherHeight(true) will calculate with borders, paddings and margins.
    $('#menu').css({'top': stickToBot + 'px'});

    $(window).scroll(function() {
       var scrollVal = $(this).scrollTop();
        if ( scrollVal > stickToBot ) {
            $('#menu').css({'position':'fixed','top' :'0px'});
        } else {
            $('#menu').css({'position':'absolute','top': stickToBot +'px'});
        }
    });
});​

注意:如果您想更进一步,我建议您也检查一下这个答案:

设置窗口滚动动画的 CSS 值限制

于 2012-08-16T08:33:33.273 回答