当前位置:首页 > 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属性检测:

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

js实现keydown

标签: jskeydown
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="sli…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…