在滚动过去之后将Div粘贴到顶部

Joe*_*bby 11 javascript css jquery html5

现在,我可以div在向下滚动后坚持到顶部,320px但我想知道是否有其他方法可以实现这一目标.下面我有我的代码:

jQuery(function($) {
    function fixDiv() {
        if ($(window).scrollTop() > 320) { 
            $('#navwrap').css({ 'position': 'fixed', 'top': '0', 'width': '100%' }); 
        }
        else {
            $('#navwrap').css({ 'position': 'static', 'top': 'auto', 'width': '100%' });
        }
    }
    $(window).scroll(fixDiv);
    fix5iv();
});
Run Code Online (Sandbox Code Playgroud)

它有效,但有些divs高于它不会总是相同的高度所以我不能依赖它320px.如何在不使用的情况下if ($(window).scrollTop() > 320)让它工作,所以我可以在用户滚动过去后让它在顶部淡​​入div #navwrap

Ror*_*san 15

尝试使用offset().top的的#navwrap元素.这样,元素将从文档中的起始位置固定,无论它在何处.例如:

function fixDiv() {
    var $div = $("#navwrap");
    if ($(window).scrollTop() > $div.data("top")) { 
        $div.css({'position': 'fixed', 'top': '0', 'width': '100%'}); 
    }
    else {
        $div.css({'position': 'static', 'top': 'auto', 'width': '100%'});
    }
}

$("#navwrap").data("top", $("#navwrap").offset().top); // set original position on load
$(window).scroll(fixDiv);
Run Code Online (Sandbox Code Playgroud)

示例小提琴