2013-07-08 30 views
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以使其在其他功能中正常工作。

+1

使用[.stop()](http://api.jquery.com/stop/) –

回答

0

您可以通過使用jquery stop();

當時間符合您的標準呼籲i

$('#i').stop(); 
0

停止功能停止動畫並清除隊列,刪除任何將發生更多的動畫做curent動畫後,使用:

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

From the docs

.stop([clearQueue ] [, jumpToEnd ])

哪裏clearQueue是指示是否要刪除排隊的動畫以及和 jumpToEnd指示是否立即完成當前的動畫一個布爾值。默認爲false。