📅  最后修改于: 2023-12-03 15:01:45.058000             🧑  作者: Mango
有时候在 Web 开发中,我们需要检查用户是否同时按下了两个键,例如 Ctrl 和 A。在 JavaScript 中,可以通过使用 keydown
和 keyup
事件来实现这一功能。
首先,在document
上绑定 keydown
和 keyup
事件:
document.addEventListener('keydown', onKeyDown);
document.addEventListener('keyup', onKeyUp);
在 keydown
和 keyup
事件的处理程序中,我们需要跟踪按下的键是否在按下状态。我们可以通过一个对象来存储用户按下的键:
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);
现在,当用户同时按下 Ctrl
和 A
,控制台就会输出 Ctrl 和 A 同时按下
。
在本文中,我们通过监听键盘事件并跟踪按下的键,实现了在 JavaScript 中检查用户是否同时按下了两个键的功能。