1 回答

TA貢獻1853條經驗 獲得超6個贊
您的問題是因為您使用的是已棄用(且定義不正確)KeyboardEvent.keyCode
的屬性而不是標準化code
屬性。
將您的 JavaScript 更改為此,它應該可以工作:
免責聲明:
小心,
switch
?因為它有 fallthrough,除非你使用break
.left
我還沒有評估你/邏輯的正確性floppyPosX
。我將您的
if
陳述更改為單一switch
陳述。
function moveFloppy(e) {
? ? switch(e.code) {
? ? case 'ArrowLeft':
? ? ? ? left += 2;
? ? ? ? floppy.style.left = floppyPosX + left + "px";
? ? ? ? break;
? ? case 'ArrowRight':
? ? ? ? left -= 2;
? ? ? ? floppy.style.left = floppyPosX + left + "px";
? ? ? ? break;
? ? case 'ArrowUp':
? ? ? ? top += 2;
? ? ? ? floppy.style.top = floppyPosY + top+ "px";
? ? ? ? break;
? ? case 'ArrowDown':
? ? ? ? top -= 2;
? ? ? ? floppy.style.top = floppyPosY + top + "px";
? ? ? ? break;
? ? default:
? ? ? ? // TODO: Play a fart sound.
? ? ? ? break;
? ? }
}
document.addEventListener( 'keydown', moveFloppy );
添加回答
舉報