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