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 );
添加回答
举报
