现在,我可以在向下滚动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();
});
它有效,但它上面的一些divs
并不总是相同的高度,所以我不能依赖320px
。如何在不使用if ($(window).scrollTop() > 320)
的情况下使其工作,以便在用户滚过div #navwrap
之后我可以让它在淡入淡出?
答案 0 :(得分: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);