Javascript 暂停并恢复JQuery.animated对象

Javascript 暂停并恢复JQuery.animated对象,javascript,jquery,jquery-animate,Javascript,Jquery,Jquery Animate,我在尝试暂停和恢复JQuery.animated对象时遇到问题,它会很好地暂停,但一旦它恢复动画,它会将动画从当前位置重置,因此它最终会移动到要停止的位置 这里有一个jsFiddle:帮助更好地解释它 感谢您的帮助。问题在于您使用的是相对动画目标。据我所知,插件只考虑重新启动动画时经过的时间,属性保持不变 因此,如果您启动一个线性动画5秒以移动一个元素+100px,并在2秒后暂停动画,则它已经移动了40px。当动画恢复时,它将启动一个动画,移动+100px 3秒,元素最终总共移动140px 解决

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

这里有一个jsFiddle:帮助更好地解释它


感谢您的帮助。

问题在于您使用的是相对动画目标。据我所知,插件只考虑重新启动动画时经过的时间,属性保持不变

因此,如果您启动一个线性动画5秒以移动一个元素+100px,并在2秒后暂停动画,则它已经移动了40px。当动画恢复时,它将启动一个动画,移动+100px 3秒,元素最终总共移动140px

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


您可能希望向插件的开发人员报告此错误/限制,但由于插件的版本仅为0.1,他可能很清楚。

这就是您试图实现的目标吗

我只是使用了,还添加了元素的高度,这样它就不会低于窗口边框


期望的行为是什么?你是想重新设置它,让它从顶部重新开始吗?@leonxki对不起,我应该提到,不,我希望它从它“暂停”的位置继续,但只按照它最初的意图继续。我想这是因为你的窗口高度发生了变化,当div向下滑动时,请尝试
console.log(windowHeight)
你从中得到了什么,你得到了一种有趣的编码方式,你从jquery中拿走了
链接能力(真丢脸:)哈哈,拿最后一位开玩笑这就是我想要实现的:)