当前位置:首页 > JavaScript

js 实现键盘输入

2026-03-01 07:07:05JavaScript

监听键盘事件

使用addEventListener监听键盘事件,可捕获用户按键动作。常用事件类型包括keydown(按键按下)、keyup(按键释放)和keypress(字符输入)。

document.addEventListener('keydown', (event) => {
  console.log('按键代码:', event.keyCode);
  console.log('按键名称:', event.key);
});

获取按键信息

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

  • event.key:返回按键的字符串表示(如"Enter"、"A")。
  • event.code:返回物理按键代码(如"KeyA"、"ArrowLeft")。
  • event.keyCode(已废弃):返回ASCII码值。
document.addEventListener('keyup', (event) => {
  if (event.key === 'Enter') {
    alert('回车键被按下');
  }
});

组合键检测

通过event.ctrlKeyevent.shiftKeyevent.altKey等属性检测组合键:

document.addEventListener('keydown', (event) => {
  if (event.ctrlKey && event.key === 's') {
    event.preventDefault(); // 阻止默认保存行为
    console.log('Ctrl+S 被按下');
  }
});

输入框实时监听

对特定输入框绑定键盘事件,实现实时反馈:

const input = document.getElementById('myInput');
input.addEventListener('input', (event) => {
  console.log('当前输入值:', event.target.value);
});

游戏控制示例

通过方向键控制游戏角色移动:

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

事件阻止默认行为

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

document.addEventListener('keydown', (event) => {
  if (event.key === ' ') {
    event.preventDefault();
    console.log('空格键被禁用');
  }
});

自定义快捷键系统

实现可配置的快捷键绑定:

js 实现键盘输入

const shortcuts = {
  'Alt+D': () => console.log('打开调试工具'),
  'Shift+?': () => alert('显示帮助')
};

document.addEventListener('keydown', (event) => {
  const combo = [
    event.altKey && 'Alt',
    event.shiftKey && 'Shift',
    event.key
  ].filter(Boolean).join('+');

  if (shortcuts[combo]) {
    shortcuts[combo]();
  }
});

标签: 键盘输入js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…