javascript – 检测两个键盘键同时关闭

我尝试使用此代码检测同时按下的两个键盘箭头:

document.addEventListener('keydown', event => {

    if (event.keyCode === 38) {
        console.log('up Arrow')
    }

    if (event.keyCode === 39) {
        console.log('right Arrow')
    }

})

但它不起作用,但我努力尝试在同一时间按它们.

如何干净地修复此问题并检测两个键何时关闭?

解决方法:

每个事件只有一个keyCode.您必须跟踪向下和向上的键:

// if you keep both up and down keys down, you'll get a message
let downKeys = {}; // the set of keys currently down
document.addEventListener('keydown', event => {
    downKeys[event.keyCode] = true;
    if (downKeys[38] && downKeys[40]) {
       console.log("both down!");
    }
});
document.addEventListener('keyup', event => {
    downKeys[event.keyCode] = false;
});

(你必须去整页测试这个片段)

上一篇:IE9和10无法反映javascript光标更改


下一篇:Android软键盘推视图