当前位置:首页 > JavaScript

js 实现按键

2026-04-06 00:28:41JavaScript

监听键盘事件

使用 addEventListener 监听键盘事件,支持 keydownkeyupkeypress 三种类型:

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

document.addEventListener('keyup', function(event) {
  console.log('按键释放:', event.key);
});

获取按键信息

通过事件对象 event 可以获取按键详细信息:

document.addEventListener('keydown', function(event) {
  console.log('按键代码:', event.keyCode || event.which);
  console.log('按键名称:', event.key);
  console.log('组合键状态:', {
    ctrl: event.ctrlKey,
    alt: event.altKey,
    shift: event.shiftKey,
    meta: event.metaKey
  });
});

阻止默认行为

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

js 实现按键

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 保存操作');
  }
});

游戏控制示例

实现方向键控制游戏角色的基础代码:

js 实现按键

const player = { x: 0, y: 0 };

document.addEventListener('keydown', function(event) {
  const speed = 5;
  switch(event.key) {
    case 'ArrowUp': player.y -= speed; break;
    case 'ArrowDown': player.y += speed; break;
    case 'ArrowLeft': player.x -= speed; break;
    case 'ArrowRight': player.x += speed; break;
  }
  console.log('玩家位置:', player);
});

输入框特殊处理

针对 <input> 元素的按键处理需要额外注意焦点问题:

const inputField = document.querySelector('input');
inputField.addEventListener('keydown', function(event) {
  if (event.key === 'Enter') {
    console.log('输入内容:', this.value);
  }
});

移动端虚拟键盘

移动设备需要额外处理虚拟键盘事件:

window.addEventListener('resize', function() {
  if (window.innerHeight < window.outerHeight * 0.8) {
    console.log('虚拟键盘弹出');
  } else {
    console.log('虚拟键盘收起');
  }
});

标签: 按键js
分享给朋友:

相关文章

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现防洪

js实现防洪

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

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现密码

js实现密码

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

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…