我在尝试暂停和恢复JQuery.animated对象时遇到了麻烦,它暂停了很好但是一旦恢复动画,它会将动画从当前位置重置,因此最终会移动到它要停止的位置
继续使用jsFiddle:jsFiddle来帮助解释它。
谢谢你的帮助。
答案 0 :(得分:4)
答案 1 :(得分:3)
问题是你正在使用相对动画目标。据我所知,插件只需要在重新启动动画时花费时间,属性保持不变。
因此,如果你开始一个5秒的线性动画来移动元素+ 100px并在2秒后暂停动画,那么它已经移动了40px。当动画恢复时,它将启动一个动画,移动+ 100px,持续3秒,然后该元素最终移动140px。
解决方案是在调用$box.animate()
时使用绝对值,将相对值转换为绝对值,然后在必要时转换。不要移动"+="+windowHeight
,而是将其设置为$box.position().top + windowHeight
。
你可能想向插件的开发者报告这个错误/限制,但由于插件的版本只有0.1,他可能很清楚。