📌  相关文章
📜  javascript 检查是否按下了两个键 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:45.058000             🧑  作者: Mango

JavaScript 检查是否按下了两个键 - JavaScript

有时候在 Web 开发中,我们需要检查用户是否同时按下了两个键,例如 Ctrl 和 A。在 JavaScript 中,可以通过使用 keydownkeyup 事件来实现这一功能。

监听键盘事件

首先,在document上绑定 keydownkeyup 事件:

document.addEventListener('keydown', onKeyDown);
document.addEventListener('keyup', onKeyUp);
事件处理

keydownkeyup 事件的处理程序中,我们需要跟踪按下的键是否在按下状态。我们可以通过一个对象来存储用户按下的键:

let keys = {};
function onKeyDown(e) {
  keys[e.key] = true;
  checkKeys();
}
function onKeyUp(e) {
  delete keys[e.key];
}
检查按键

最后在 checkKeys 函数中检查按键是否同时按下:

function checkKeys() {
  if (keys["Control"] && keys["a"]) {
    console.log("Ctrl 和 A 同时按下");
  }
}
完整代码
let keys = {};

function onKeyDown(e) {
  keys[e.key] = true;
  checkKeys();
}

function onKeyUp(e) {
  delete keys[e.key];
}

function checkKeys() {
  if (keys["Control"] && keys["a"]) {
    console.log("Ctrl 和 A 同时按下");
  }
}

document.addEventListener('keydown', onKeyDown);
document.addEventListener('keyup', onKeyUp);

现在,当用户同时按下 CtrlA,控制台就会输出 Ctrl 和 A 同时按下

结论

在本文中,我们通过监听键盘事件并跟踪按下的键,实现了在 JavaScript 中检查用户是否同时按下了两个键的功能。