我有http://jsfiddle.net/Borisko/604rLvbc/38/
我想要添加动画(延迟,无论如何,让它变得更好)来滚动:
$div.scrollTop(fixpos);
添加动画后,一切都破了,滚动多次 。
有任何方法可以让scrollTop动画只运行一次(就像没有动画一样)
答案 0 :(得分:0)
好的,所以我无法确定这背后的原因 - 如果你添加动画,功能停止,代码不起作用 - 一个滚动上的动画多次转到错误的元素 - 但这就是我认为这里发生的事情:当我们为pos
赋值时,scrollTop()值仍然没有更新
var pos = $div.scrollTop();
因此,在动画制作之前,我已将scrollTop
值存储在全局变量valuePos
中,然后在下一次滚动时将该值设置为pos
。我已使用valuePos
初始化scrollTop
。
var valuePos = $("#target").scrollTop();
如果您快速滚动,动画将会起作用但稍有延迟,因为我们在这里调用了多个animate
。我在调用.stop()
之前使用了animate
,因此动画不会过多。
请参阅此fiddle。