我使用下面的javascript来制作'粘性'导航,当用户滚动浏览它时,导航将固定到屏幕的顶部。这段代码工作正常,但是当元素变得粘滞并且元素的位置被设置为'fixed'时,身体中所有以下元素的位置'跳起来'以占据从改变元素所产生的间隙相对固定,并且会产生轻微的“颠簸”效果。为了解决这个问题,当元素改变为固定值时,我尝试在scroll y位置添加一个偏移量,但是这会通过再次触发滚动函数而导致一个循环,并且页面会滚动到页面的底部。滚动时没有触发的JQuery滚动
所以我的问题是 - 如何在下面的函数可以添加一个偏移量滚动位置?即,如何在$(window).scroll函数中设置滚动位置,而不是将$(window).scroll函数触发到循环中?
$(window).scroll(function (event) {
var y = $(this).scrollTop();
var top = $('#main-navigation').offset().top;
if (y >= top) {
$('#navigation').addClass('fixed');
}
else {
$('#navigation').removeClass('fixed');
}
});
任何帮助是非常赞赏
您可以添加'event.preventDefault()'停止窗口的默认滚动行为的执行。另外,你可以做一个[小提琴](http://jsfiddle.net),我们可以看到这个问题? – Banana 2014-09-20 13:39:32