jQuery-终止动画
当我遇到如下代码时,我遇到了一个问题:jQuery-终止动画,jquery,animation,terminate,Jquery,Animation,Terminate,当我遇到如下代码时,我遇到了一个问题: $("#clickme").click(function () { $("#status").fadeIn(250).delay(2500).fadeOut(250); }); 这表明用户成功保存某些信息后,问题在于,当你多次(快速)单击#clickme按钮时,动画进入某种队列,它们一个接一个地执行。这很糟糕。我想当用户多次点击按钮时,上一个动画将停止,而新的动画将从头开始 此外,当#状态当前可见且用户再次单击时,状态将消失,新动画将重新开
$("#clickme").click(function () {
$("#status").fadeIn(250).delay(2500).fadeOut(250);
});
这表明用户成功保存某些信息后,问题在于,当你多次(快速)单击#clickme按钮时,动画进入某种队列,它们一个接一个地执行。这很糟糕。我想当用户多次点击按钮时,上一个动画将停止,而新的动画将从头开始
此外,当#状态当前可见且用户再次单击时,状态将消失,新动画将重新开始
谁能告诉我一些方向吗?我已经努力解决这件事好几天了
尝试使用.clreaQueue();这对你有用
$("#clickme").click(function () {
$("#status").clearQueue();
$("#status").fadeIn(250).delay(2500).fadeOut(250);
});
您必须确保您的状态尚未设置动画:
$("#clickme").click(function () {
var $status = $("#status");
$status.stop(true).hide();
$status.fadeIn(250).delay(2500).fadeOut(250);
});
您可以使用如下方法:
$("#status").stop(true).fadeIn(250).delay(2500).fadeOut(250);
在未来,它会起作用。(使用true
param。)
[编辑](添加多个状态)这和你想做的一样吗?+1这似乎是正确的,你介意从上面扩展到OP的代码中吗?@Benjamin Grunbaum实际上我的目的是快速回复,然后我会扩展它。@RichardŠstek你检查过我的answer@Baadshah你现在可以检查一下嘿,谢谢你的回答。使用clreaQueue很好。我不知道它的存在。除了stop()非常好而且简单的解决方案:)stop方法也不会导致成功的场景。感谢您的更新,但是仍然存在一个问题。假设我有多个保存按钮。现在,当用户单击save,然后在2.499秒内再次单击save时,我希望用户知道信息已存储。在本例中,它将在0.01秒内消失。好的,请检查我的编辑以获得您可能真正期望的内容;)再次感谢您的更新,不幸的是,如果没有bug,仍然无法正常工作->尝试玩一点-一些多次单击,然后休息一下。您可以看到显示状态的间隔2.5秒将变短。有时它甚至会立即消失。很抱歉,我不知道这个问题后面会有这么多问题。事实上,即时
hide()
让事情变得更好。我想你会接受的。否则您必须使用jQueryqueue()
!Post&fiddle已更新。