如何中断动画

时间:2013-07-08 07:49:29

标签: javascript jquery jquery-animate

有没有办法: 1.优先考虑某个字符串而不是另一个字符串  要么 2.中断当前正在运行的字符串并启动一个新字符串?

我有这样的代码。它应该将按钮颜色从绿色 - >黄色 - >闪烁变为紫色 - >返回绿色:

HTML:

<input id="i" type="button" value="I" style="width:80px;height:80px;color:#ffffff;background-color:#0CEDCF;border-color:#1BE0DD"/>

使用Javascript:

$('#i').animate({backgroundColor: "#F8FF2B"},900);
    setTimeout(
    function(){
      $('#i').css('color', '#5142F5');
      $('#i').css('background-color', '#F760F2');
    }, 350);
    setTimeout(
    function(){
      $('#i').animate({backgroundColor: '#0CEDCF'},302);
    }, 480);
    setTimeout(
    function(){
      $('#i').css('color', '#FFFFFF');
    }, 602);

基本上,我想要

$('#i').animate({backgroundColor: "#F8FF2B"},900);

立即停止效果

setTimeout(
function(){
      $('#i').css('color', '#5142F5');
      $('#i').css('background-color', '#F760F2');
}, 350);

激活。到目前为止,我能做到这一点的唯一方法是缩短900到350,但我的程序有时需要我坚持900,以便它在其他功能中正常工作。

2 个答案:

答案 0 :(得分:0)

您可以使用jquery stop();

来完成此操作

当时间符合您的条件时,请在 i

上调用停止功能
$('#i').stop();

答案 1 :(得分:0)

要停止动画并清除队列,请删除动画后使用的更多动画,请使用:

$('#i').stop(true, true);

From the docs

.stop( [clearQueue ] [, jumpToEnd ] )

其中clearQueue是一个布尔值,表示是否同时删除排队的动画 jumpToEnd表示是否立即完成当前动画。默认为false。