如何重置jquery动画重新开始?

我已经构建了一段很好的代码,一些动画和一些点击/hover事件,相当一小部分。 我打算在多个html文档上使用它(这是一个游戏,你必须得到正确的答案并继续下一个问题),在另一个带有整页滑块的html中构建(我不想加载多个DOM)时间,没有意义):未解决的问题是:如何在不重新加载代码的情况下重置代码? 如何让它清除目前为止的一切并重新开始? 我是初学者,在其他片段上构建东西。 我想它必须是一件非常简单和基本的东西,没有人能回答它……为所有先前做过的事情制作动画的东西并不好:太多的东西,绑定和解除绑定。

我有一个动画,每次代码运行时都保持位置。 为了修复它,我使用了:

function(){ $('.target').removeAttr('style'); } 

所以我的代码是这样的:

 $('#target').animate({ opacity: 'toggle', top: '+=100', }, 1000, function() { $('#target').removeAttr('style'); }); 

对于jQuery,您可以使用.finish(),在此之前,要重置,您需要一些参数到.stop()方法。

 $(element).stop(true, true); 

https://api.jquery.com/stop/

$(element).stop(),然后重新运行动画。

没有简单的答案,因为这完全取决于你做了什么,你需要重置什么状态,需要重置哪些UI元素等等。 我想你必须建立自己的重置方法,将所有东西设置为初始状态或者…你可以采取简单的路径并重新加载页面。

感谢您的耐心解答。 两者都是对的:

  • 在一个动画的情况下,stop方法有效。

  • 在多个链式动画的情况下 – 抱歉,没有简单的方法。 如果你想要一个简短但不那么优雅的解决方案,请重新加载。 要做到这一点 – 学习javascript来构建逻辑链函数。 只用jQuery就不能长久运行。

我这样做:(不确定它是否完全正确)

 $(element).stop(); $(element).clearQueue(); $(element).delay(20).animate({ ... }); 

试试.finish()
示例(尝试发送垃圾按钮):

 $('button').on('click', function(event) { $("div").finish(); $("div").fadeOut(1000); });