2017-11-07 13 views
1

divのbackgroundColorを250ms間変化させてから、元に戻したい。このために私はdivの上などのonclick次のコードを使用します。setTimeoutの関数を素早く呼び出す

function keyAnimation(key) { 
basicColor = key.style.backgroundColor; 
key.style.backgroundColor = "red"; 
setTimeout(function() { 
    key.style.backgroundColor = basicColor; 
}, 250); 

をしかし、私はそれが赤のまま(250ミリ秒以内)すぐにdiv要素を複数回クリックしたとき。 これをコード化すれば、250ms後にいつもbasicColorに戻るでしょうか?

答えて

2

フラグを追加し、そのブロックの追加キー押下:

var running = false; 

function keyAnimation(key) { 
if(running) return; 
running = true; 

const basicColor = key.style.backgroundColor; 
key.style.backgroundColor = "red"; 

setTimeout(function() { 
    key.style.backgroundColor = basicColor; 
    running = false; 
}, 250); 

} 
関連する問題