当前位置:首页 > JavaScript

js 实现键盘输入

2026-01-30 16:02:55JavaScript

监听键盘事件

在JavaScript中,可以通过addEventListener方法监听键盘事件。常见的事件类型包括keydownkeyupkeypresskeydown在按键按下时触发,keyup在按键释放时触发,keypress在按键按下并产生字符时触发。

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

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

获取按键信息

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

  • event.key:返回按键的字符串表示(如 "a"、"Enter")。
  • event.code:返回按键的物理键码(如 "KeyA"、"Enter")。
  • event.ctrlKeyevent.shiftKeyevent.altKeyevent.metaKey:返回布尔值,表示是否按下了修饰键。
document.addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
        console.log('Enter key pressed');
    }
    if (event.ctrlKey && event.key === 's') {
        event.preventDefault(); // 阻止默认行为
        console.log('Ctrl + S pressed');
    }
});

阻止默认行为

某些按键组合会触发浏览器的默认行为(如Ctrl+S保存页面)。可以通过event.preventDefault()阻止这些行为。

document.addEventListener('keydown', function(event) {
    if (event.ctrlKey && event.key === 's') {
        event.preventDefault();
        console.log('Save action prevented');
    }
});

实现快捷键功能

通过监听特定按键组合,可以实现自定义快捷键功能。例如,监听Ctrl+Shift+P组合键:

document.addEventListener('keydown', function(event) {
    if (event.ctrlKey && event.shiftKey && event.key === 'P') {
        console.log('Custom shortcut triggered');
    }
});

输入框焦点控制

可以通过focus()blur()方法控制输入框的焦点,结合键盘事件实现交互逻辑。

const input = document.getElementById('myInput');
document.addEventListener('keydown', function(event) {
    if (event.key === 'Tab') {
        event.preventDefault();
        input.focus();
    }
});

游戏控制示例

在游戏开发中,键盘输入常用于控制角色移动。以下是一个简单的方向键控制示例:

const keys = {};
document.addEventListener('keydown', function(event) {
    keys[event.key] = true;
    if (keys['ArrowUp']) console.log('Move up');
    if (keys['ArrowLeft']) console.log('Move left');
});

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

虚拟键盘实现

可以通过DOM元素模拟虚拟键盘,为触摸设备提供输入支持。以下是一个简单的虚拟键盘按钮点击事件:

js 实现键盘输入

document.querySelectorAll('.keyboard-button').forEach(button => {
    button.addEventListener('click', function() {
        const key = this.getAttribute('data-key');
        const event = new KeyboardEvent('keydown', { key: key });
        document.dispatchEvent(event);
    });
});

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

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现类

js实现类

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

节流js实现

节流js实现

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

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…