函数调用上的 scrollTop 动画多个

scrollTop on function call animate multiple

我有这个http://jsfiddle.net/Borisko/604rLvbc/38/

我想在 scrolTop 中添加动画(延迟,不管怎样,让它好看):

 $div.scrollTop(fixpos);

添加动画后,一切都崩溃了,滚动 多次

有什么方法可以使 scrollTop 动画 运行 一次(就像没有动画一样)

好的,所以我不能确定这背后的原因 - 如果你添加动画,功能就会停止,并且代码不起作用 - 一个滚动上的动画多次出现在错误的元素上 - 但我认为这就是这里发生的事情:当我们将值分配给 pos

时,scrollTop() 值仍然没有更新
var pos = $div.scrollTop();

因此,在制作动画之前,我将 scrollTop 值存储在全局变量 valuePos 中,然后在下一次滚动时将该值设置为 pos。我已经用 scrollTop.

初始化了 valuePos
var valuePos = $("#target").scrollTop();

如果您快速滚动,动画将会运行,但会稍有延迟,因为我们在这里调用了多个 animate。我在 animate 调用之前使用了 .stop(),这样动画就不会滞后太多。

请参考这个fiddle