我正在制作一个保留在页面顶部的导航栏。当用户向下滚动时,这个栏会缩小,当用户回到页面顶部时,导航栏会恢复到原来的尺寸。
问题:当用户向下滚动时,导航栏按预期缩小。但是,如果用户快速滚动回到页面顶部,导航栏仍然会缩小,并且回调函数animate()
中的scrollTop()
函数会在几秒钟后触发。
为了调试这个,我包括console.log($(window).scrollTop());
告诉我用户在页面上的当前位置。console.log
用户滚动时,我会尽快获得输出。但是 应该在动画完成时触发,直到输出{console.log('animated');
后几秒钟后才会出现。console.log($(window).scrollTop());
0
当用户向上滚动时,我怎样才能animate()
快速响应?
JS代码
var navBar = $('#navbar-inner');
var top = navBar.css('top');
$(window).scroll(function() {
console.log($(window).scrollTop());
if($(this).scrollTop() > 50) {
navBar.animate({'marginTop':'-20', 'height':'60'}, 300);
} else {
navBar.animate({'marginTop':'0', 'height':'80'}, 300, function()
{console.log('animated');});
}
});