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

时间:2011-02-21 18:37:43

标签: jquery methods reset

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

7 个答案:

答案 0 :(得分:21)

我有一个动画,每次代码运行时都保持位置。为了解决这个问题,我使用了:

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

所以我的代码是这样的:

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

  • 如果是一个动画,则停止方法有效。

  • 如果是多个链式动画 - 抱歉,没有简单的方法。如果你想要一个简短但不那么优雅的解决方案,请重新加载。要正确地做 - 学习javascript来构建逻辑链函数。你只能用jQuery来运行。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

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

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