javascript - 检测到两个键盘按键同时按下

标签 javascript keyboard

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

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;
});

(你必须翻到整页才能测试这个片段)

关于javascript - 检测到两个键盘按键同时按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53882013/

相关文章:

javascript - ajax调用错误处理函数或if-else语句

javascript - 在 div 标签内附加表格

javascript - 在 P5.js 中制作环形形状

c++ - 相当于 Windows CE 的 kbhit

windows - Windows 键盘键的 ascii 代码和功能键(F1 - F12)和其他键(如 shift、capslock、backspace、ctrl 等)的代码

javascript - 当另一个函数返回 javascript 时停止函数

javascript - react : How to sort data in asc and desc in ReactJS

Cocoa 应用程序响应键盘播放/暂停键而不启动 iTunes?

macos - 检测 OS X 上的任何按键,包括修饰键

linux - 如何在 bash 脚本的 waitkey 函数中处理长按按钮?