滚动到时将div更改为固定

时间:2014-09-12 22:25:10

标签: jquery html scroll css-position fixed

所以我看到很多答案要从div改变position: absolute;到position: fixed;当它击中页面上的300px之类的特定点时;但是,我想知道如果不是像300px这样的特定点,你可以在达到实际的div时修复它吗?由于我的页面始终以100%高度/宽度启动而我的唠叨位于底部,因此它将始终在变化。这是我的代码。

CSS:

nav {
    background:rgba(0,0,0,0.5);
    position:absolute;
    bottom:0;
    width:100%;
    text-align:center;
    z-index:9999;
    margin:0;
    padding:25px 0;
}

的JavaScript:

jQuery(function($) {
    function fixDiv() {
        var $cache = $('#nav'); 
        if ($(window).scrollTop() > 300) {
            $cache.css({'position': 'fixed'});
        }
        else {
            $cache.css({'position': 'absolute'});
        }
    }
        $(window).scroll(fixDiv);
        fixDiv();
});

我只是希望300#nav所以当它到达时,它会坚持。

1 个答案:

答案 0 :(得分:4)

看看.offset()。 因此,如果$('#nav').offset().top等于$(window).scrollTop(),则您的元素应位于窗口的顶部。

这是一个小提琴:http://jsfiddle.net/vj5wm0uj/1/