暂停和恢复JQuery.animated对象

时间:2011-05-03 08:01:59

标签: javascript jquery jquery-animate

我在尝试暂停和恢复JQuery.animated对象时遇到了麻烦,它暂停了很好但是一旦恢复动画,它会将动画从当前位置重置,因此最终会移动到它要停止的位置

继续使用jsFiddle:jsFiddle来帮助解释它。

谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

这是你想要达到的目标吗?

我刚刚使用suggestions from @DarthJDG,还添加了元素的高度,因此它不会低于窗口边框。

http://jsfiddle.net/HemUe/2/

答案 1 :(得分:3)

问题是你正在使用相对动画目标。据我所知,插件只需要在重新启动动画时花费时间,属性保持不变。

因此,如果你开始一个5秒的线性动画来移动元素+ 100px并在2秒后暂停动画,那么它已经移动了40px。当动画恢复时,它将启动一个动画,移动+ 100px,持续3秒,然后该元素最终移动140px。

解决方案是在调用$box.animate()时使用绝对值,将相对值转换为绝对值,然后在必要时转换。不要移动"+="+windowHeight,而是将其设置为$box.position().top + windowHeight

你可能想向插件的开发者报告这个错误/限制,但由于插件的版本只有0.1,他可能很清楚。