滚动过去后将Div粘贴到顶部
现在,我可以在向下滚动320px
之后将div
保持在顶部,但我想知道是否有另一种实现此目的的方法。 下面我有我的代码:
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(); });
它工作,但它上面的一些divs
不会总是相同的高度,所以我不能依赖320px
。 如何在不使用if ($(window).scrollTop() > 320)
情况下使用它,这样我可以在用户div #navwrap
之后让它在淡入淡出?
尝试使用#navwrap
元素的offset().top
。 这样,元素将从文档中的起始位置固定,无论它在何处。 例如:
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);
示例小提琴