我試圖在按住某個鍵(本例中爲向左或向右箭頭)時使元素移動,但當按住某個鍵時,移動會延遲大約一秒鐘。我是否使用了錯誤的事件或者我的代碼有什麼問題?當我使用onKeyDown事件時,移動的元素會延遲
我正在使用onKeyDown
事件觸發移動。
<head>
<script>
\t var objX = 100; \t \t
\t function blockMove(e){
\t \t if (e.keyCode == 37) { //move left
\t \t \t objX-=4;
\t \t \t document.getElementById("object").style.left = objX + "px"; \t
\t \t } else if (e.keyCode == 39) { //move right
\t \t \t objX+=4;
\t \t \t document.getElementById("object").style.left = objX + "px"; \t
\t \t }
\t } \t \t \t
\t </script>
</head>
<body onkeydown="blockMove(event)">
\t <div id=object style="height:10px;width:80px;background-color:red;position:absolute;top:50px;left:100px"></div>
</body>
而不是等待鍵「重複」,你應該跟蹤keydown和keyup事件,並讓計時器重複移動動作,當一個鍵是關閉(沒有鍵盤)。 – ebyrob
你正在創造一個打火機,不是嗎? – monxas
@monxas其實我只是想獲得一些最基本的遊戲機制。 – HamMan4Ever