2015-09-16 35 views
1

由於空間不足,我的標題不是很具體,所以我會更具體。我經常有想法,需要像第一部分或第二部分的代碼這樣的概念。我會做到這一點。我覺得在這兩種情況下使用setTimeout是不合適的。它創造了一個巨大的重疊混亂沒有clearTimeout,只是不正確。這是我問社區的地方:我想要達到的目標是什麼?除了settimout和setinterval之外,在進行動畫複雜鏈接或註冊多個點擊時,有沒有其他更有效的方法可以做到這一點?爲第一次和第二次點擊+鏈接延遲創建動畫的不同延遲

這裏與點擊一個例子:

document.getElementById("example").addEventListener("click", function(){ 

    clicked = false; 

    if (clicked = false){ 
    clearTimeout(t2); 
    var t1 = setTimeout(function(){ 
     // animate 1 
    }, 1000); 
    } 

    else { 
    clearTimeout(t1); 
    var t2 = setTimeout(function(){ 
     // animate 1 
    }, 2000); 
    } 

    clicked = !clicked 

}; 

或存在的鏈接的東西的問題:

setTimeout(function(){ 
    // does stuff 
     setTimeout(function(){ 
      // does stuff 
       setTimeout(function(){ 
        // does stuff 
       }, 1000); 
     }, 1000); 
}, 3000); 

回答

1

我會看看到動畫完成時觸發一個自定義事件,那就是如何你完成你的動畫鏈接。爲觸發鏈中下一個動畫的自定義事件創建一個偵聽器。這是已經建立到新的Web Animations標準的東西。如果您想要與不支持的瀏覽器向後兼容,那麼還有一個用於API的javascript shim available