如何在页面底部构建简单的粘性导航?

时间:2012-08-16 08:28:03

标签: javascript jquery html css scroll

我正在尝试这样做,当你加载一个div时,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>

我不能这样做,所以它在负载时坚持到底。如果不清楚,我附上了一个小样本。

Sticky

1 个答案:

答案 0 :(得分:9)

<强>更新。
Here is working jsFiddle to examine.

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

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

Setting CSS value limits of the window scrolling animation