所以我終於得到了一段代碼,但我無法理解它爲什麼起作用。我的CSS基本上有一個 精靈表,它將一個框變形爲一個圓。布爾上的JavaScript NOT操作符
animation-play-state : paused;
是我的CSS中的一個規則,它保持精靈開始動畫,直到按下按鍵爲止,如您在JavaScript代碼中所看到的。
我的問題是爲什麼if執行代碼塊時keycheck
是false
。根據我對!
運營商如何工作的瞭解,是不是代碼只在keycheck
爲「NOT」false時纔會執行?它的初始值是false
,爲什麼它運行?
該代碼假設在按住某個鍵時停止重複執行該事件。
keycheck = false;
window.addEventListener("keydown", checkKey_DN, false);
window.addEventListener("keyup", checkKey_UP, false);
function checkKey_DN(e) {
if(e.keyCode == "83" && !keycheck){
keycheck = true;
$("boxMorph").style.animationPlayState = "running";
$("boxMorph").style.WebkitAnimationPlayState = "running";
$("boxMorph").style.visibility = "visible";
$("boxMorph").classList.remove ("boxes");
$("boxMorph").offsetWidth = $("boxMorph").offsetWidth;
$("boxMorph").classList.add ("boxes");
}
}
function checkKey_UP(e){
if(e.keyCode == "83"){
keycheck = false;
$("boxes").style.visibility = "hidden";
}
}
這段代碼有助於重新設置css精靈的動畫效果。
$("boxMorph").classList.remove ("boxes");
$("boxMorph").offsetWidth = $("boxMorph").offsetWidth;
$("boxMorph").classList.add ("boxes");
如果初始值爲'false',那麼'!false === true' ... if條件是使用'&&'的AND條件,所以如果兩個部分都評估爲true,則它的計算結果爲真。並且'!false'的計算結果爲真,當然 – devnull69
我認爲你想使用'if(keycheck!= false)',它等同於'if(keycheck)',並且與if(!keycheck)完全相反' – devnull69
啊,我明白了......我一直誤解了這個錯誤。感謝您解決這個問題! – PrimRock