我建议一个替代方案。赋予平滑效果的最有利的选择是动画位置变化,假装缓动。
像这样的东西
$(window).scroll(function(){
$(".fixed").stop(false, true).animate({ "top" : $(window).scrollTop()}, 1000);
});
这很好用,但是当您开始使用滚动窗格滚动时,它又开始结结巴巴了。
但是,要克服这个问题,您可以使用去抖动技术。
$(window).scroll(function(){
$.doTimeout( 'scroll', 250, function(){
// ^ This time prevents the following code to run,
// if another scrolling occurs within this time
// Thus enabling us to give a smooth scroll effect
// Once the user is done scroll
$(".fixed").stop(false, true) //break the queue fast
.animate({ "top" : $(window).scrollTop()}, 200);
});
});