javascript - 如何防止多次播放动画 - Jquery

标签 javascript jquery animation queue jquery-animate

当快速按下一个按钮来触发带有动画的功能时,我们通常会多次调用该功能,并且动画会播放一次。

如果您不希望在动画仍在播放时触发该函数,该怎么办?

这是一个告诉 child 跳跃的函数的简单示例:

$('button').click(jumpKid);

function jumpKid () { 
 $kid
  .animate({'margin-bottom' : '+=' + 100} , 500)
  .animate({'margin-bottom' : '-=' + 100} , 500)
};

快速按下按钮会让 child 跳很多次。

我正在寻找 jquery/js 解决方案(而不是使用诸如“isKidJumping”之类的 var)

最佳答案

您可以使用:animated选择器,.is()

$("button").click(jumpKid);

function jumpKid () { 
 if (!$kid.is(":animated")) {
   $kid
   .animate({'margin-bottom' : '+=' + 100} , 500)
   .animate({'margin-bottom' : '-=' + 100} , 500)
 }
};

关于javascript - 如何防止多次播放动画 - Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37376644/

相关文章:

javascript - 2个js文件之间的链接

javascript - 使用 selectedIndex 将值更改为空白选择

javascript - `waitForEnabled()` 表示 "selector needs to be typeof ` 字符串 `"即使字符串已传递

javascript - 试图阻止 textarea 在 300px 之后增长,然后破坏自动增长的 textarea

jquery - 发送带有文本数据的 AJAX 请求 (JQuery)

html - CSS3 旋转和平移 2 个盒子

css - 动画:速记属性与动画名称:

jquery - 如何暂停正在运行的动画并使用jquery中的一个按钮运行另一个动画

javascript - 无需 secret 即可获取 github OAuth token

javascript - 使用 jQuery 找到 child 的索引?