当前位置:首页 > JavaScript

js实现keydown

2026-02-01 16:11:26JavaScript

监听键盘事件

在JavaScript中,可以通过addEventListener方法监听keydown事件。以下是一个基本示例:

document.addEventListener('keydown', function(event) {
  console.log('按键按下:', event.key);
});

获取按键信息

keydown事件对象包含多个属性,用于获取按键的详细信息:

document.addEventListener('keydown', function(event) {
  console.log('按键代码:', event.code); // 物理按键位置
  console.log('按键值:', event.key);    // 实际输入的字符
  console.log('是否按下Ctrl:', event.ctrlKey);
  console.log('是否按下Alt:', event.altKey);
  console.log('是否按下Shift:', event.shiftKey);
});

阻止默认行为

某些按键会触发浏览器的默认行为(如空格键滚动页面),可以使用preventDefault()阻止:

document.addEventListener('keydown', function(event) {
  if (event.key === ' ') {
    event.preventDefault();
    console.log('空格键被阻止');
  }
});

组合键检测

通过检查修饰键状态实现组合键功能:

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

游戏控制示例

在游戏开发中常用keydown实现角色移动:

const keys = {};
document.addEventListener('keydown', (event) => {
  keys[event.code] = true;

  if (keys['ArrowUp']) console.log('向上移动');
  if (keys['ArrowLeft']) console.log('向左移动');
});

document.addEventListener('keyup', (event) => {
  keys[event.code] = false;
});

注意事项

长时间按住按键会持续触发keydown事件,浏览器会先触发几次后进入重复模式。可以通过event.repeat属性检测:

js实现keydown

document.addEventListener('keydown', function(event) {
  if (event.repeat) return;
  console.log('首次按下');
});

标签: jskeydown
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…