2014-11-25 51 views
0

我已經通讀了所有與clearInterval相關的帖子,但不知怎的,就是不能使它工作... 腳本所做的是間隔將被設置一次「。聖誕節標題「改變圖像。 一旦鼠標點擊,間隔將被清除。只是不能讓clearInterval()的作品

var animation; 
$(".xmas-title").delay(4000).fadeIn(400, function(){ 
    bear_shake(true); 
}); 

$(".xmas-more").delay(4200).fadeIn(400, function(){ 
    $('.bg-xmas').css('cursor', 'pointer'); 
    $(".bg-xmas").click(function(){ 
     show_msg(); 
     bear_shake(false); 
    }); 
}); 

function bear_shake(bool){ 
    if(bool){ 
     animation = setInterval(function(){ 
      $(".xmas-bear").delay(200).fadeOut(0, function(){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png'); 
      }).fadeIn(0); 
      $(".xmas-bear").delay(200).fadeOut(0, function(){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png'); 
      }).fadeIn(0); 
     },0); 
     console.log('true'); 
    }else{ 
     clearInterval(animation); 
     console.log('false'); 
     $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png'); 
    } 
} 
+2

什麼似乎是問題?爲什麼你將間隔設置爲零? – akonsu 2014-11-25 03:35:06

+0

@akonsu bear_shake(true)會使圖片不斷變化(它看起來會像握手一樣),並且我希望當bear_shake(false)返回到「xmas-bear.png」時,它會停止動畫,但它會變回「xmas-bear.png」,然後繼續動畫 – 2014-11-25 03:39:21

+1

你的意思是說,當你點擊時,動畫不會停止?請注意,在暫停處理程序中您也有動畫,無論您是否清除間隔,它們一旦開始播放就會播放到最後。你需要阻止他們停止所有的動畫。 – akonsu 2014-11-25 03:47:06

回答

0

謝謝你們,看來我錯過了基本的東西,只是試圖讓我自己的事情變得困難。 我已經結合了所有你們的意見,現在就開始工作。 功能bear_shake如下改寫:

function bear_shake(bool){ 
    if(bool){ 
     var i = 2; 
     animation = setInterval(function(){ 
      if(i % 2== 0){ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png'); 
      }else{ 
       $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png'); 
      } 
      i++; 
     },200); 
    }else{ 
     clearInterval(animation); 
     $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png'); 
    } 
} 

它現在看起來清晰和簡單的我,謝謝大家。 我想知道有沒有其他更好或更聰明的方法來做到這一點?

+0

問問題或給答案,沒有得到你? – 2014-11-25 04:59:03

+0

@surajrawat問這個問題,並在我從其他人的評論中得到一些反饋後找到了答案。當然,我仍然接受其他更好的解決方案(這就是爲什麼我還沒有接受我自己的答案)。看起來代碼仍然可以更加聰明,我希望看到任何其他的可能性。 – 2014-11-25 05:06:32