当前位置:首页 > JavaScript

js怎么实现组合键

2026-04-05 01:13:38JavaScript

监听键盘事件

通过 keydownkeyup 事件监听键盘操作。使用 event.keyevent.code 识别具体按键。

document.addEventListener('keydown', function(event) {
  console.log('Key pressed:', event.key);
});

记录按键状态

创建对象存储当前按下的键状态。keydown 时标记为 truekeyup 时标记为 false

const keysPressed = {};

document.addEventListener('keydown', function(event) {
  keysPressed[event.key] = true;
});

document.addEventListener('keyup', function(event) {
  keysPressed[event.key] = false;
});

检测组合键

keydown 事件中检查多个键是否同时被按下。例如检测 Ctrl + C

document.addEventListener('keydown', function(event) {
  if (event.ctrlKey && event.key === 'c') {
    console.log('Ctrl + C pressed');
  }
});

自定义组合键逻辑

通过遍历 keysPressed 对象实现自定义组合键检测。例如检测 A + B

document.addEventListener('keydown', function(event) {
  if (keysPressed['a'] && keysPressed['b']) {
    console.log('A + B pressed');
  }
});

防止默认行为

某些组合键可能触发浏览器默认行为(如 Ctrl + S 保存页面)。使用 event.preventDefault() 阻止默认行为。

document.addEventListener('keydown', function(event) {
  if (event.ctrlKey && event.key === 's') {
    event.preventDefault();
    console.log('Ctrl + S blocked');
  }
});

完整示例代码

以下代码实现 Shift + A + B 组合键检测:

js怎么实现组合键

const keysPressed = {};

document.addEventListener('keydown', function(event) {
  keysPressed[event.key] = true;

  if (keysPressed['Shift'] && keysPressed['a'] && keysPressed['b']) {
    console.log('Shift + A + B pressed');
    // 执行自定义操作
  }
});

document.addEventListener('keyup', function(event) {
  keysPressed[event.key] = false;
});

注意事项

  • 浏览器兼容性:event.keyevent.code 在不同浏览器可能有差异。
  • 大小写敏感:event.key 区分大小写,aA 不同。
  • 修饰键检测:可直接用 event.ctrlKeyevent.shiftKey 等属性检测修饰键。

标签: 组合键js
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

vue js实现弹窗

vue js实现弹窗

Vue.js 实现弹窗的方法 使用组件实现弹窗 创建一个独立的弹窗组件,例如 Modal.vue,包含弹窗的 HTML 结构和样式。在组件中定义 props 控制弹窗的显示与隐藏。 <temp…

vue.js实现异步

vue.js实现异步

Vue.js 实现异步的方法 Vue.js 提供了多种方式来处理异步操作,以下是常见的实现方法: 使用 async/await 语法 在 Vue 组件的方法中,可以使用 async/await 来简…