是什么让动画延迟? 网站上的所有jQuery都有一些延迟..
$(function(){
$(window).scroll(function() {
var elementTop = $('body').offset().top;
var position = elementTop+ $(window).scrollTop();
if(position >= 20){
$('#top').animate({top: '40px'}, 300);
} else if(position < 20){
$('#top').animate({top: '80px'}, 300);
}
console.log(position);
});
});
住: Link here - 这是菜单/导航
答案 0 :(得分:4)
每次滚动时都会触发您的代码。 animate
方法正在连接,一个接一个地运行。要实现您的目标,您需要停止当前动画并开始一个新动画:
$(function(){
$(window).scroll(function(){
var elementTop = $('body').offset().top,
position = elementTop+ $(window).scrollTop();
if (position >= 20){
$('#top').stop().animate({top: '40px'}, 300);
}
else if (position < 20) {
$('#top').stop().animate({top: '80px'}, 300);
}
});
});