2

有没有办法: 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 保持一致,以使其在其他功能中正常工作。

4

2 回答 2

0

您可以使用jquery stop();

当时间满足您的条件时,调用停止功能i

$('#i').stop();
于 2013-07-08T07:52:46.530 回答
0

要停止动画并清除队列,请删除将在当前动画之后发生的所有动画,请使用:

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

从文档

.stop( [clearQueue ] [, jumpToEnd ] )

whereclearQueue是一个布尔值,指示是否也删除排队的动画,并 jumpToEnd指示是否立即完成当前动画。默认为假。

于 2013-07-08T08:01:37.477 回答