当前位置:首页 > JavaScript

js实现键盘输入

2026-01-30 12:26:30JavaScript

监听键盘事件

在JavaScript中,可以通过addEventListener监听键盘事件。常用的事件类型包括keydownkeyupkeypresskeydown在按键按下时触发,keyup在按键释放时触发,keypress在按键按下并产生字符时触发(已废弃,不推荐使用)。

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

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

获取按键信息

事件对象event包含按键的详细信息,常用属性如下:

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

阻止默认行为

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

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

组合键监听

通过检查修饰键状态,可以实现组合键监听。例如监听Ctrl+C

document.addEventListener('keydown', function(event) {
    if (event.ctrlKey && event.key === 'c') {
        console.log('按下了Ctrl+C');
    }
});

输入框焦点控制

通过focus()blur()方法可以控制输入框的焦点。例如按下Tab键切换焦点:

const inputs = document.querySelectorAll('input');
document.addEventListener('keydown', function(event) {
    if (event.key === 'Tab') {
        event.preventDefault();
        const currentInput = document.activeElement;
        let index = Array.from(inputs).indexOf(currentInput);
        index = (index + 1) % inputs.length;
        inputs[index].focus();
    }
});

虚拟键盘模拟

可以通过创建自定义按钮模拟虚拟键盘,触发键盘事件:

const button = document.createElement('button');
button.textContent = '模拟按键A';
button.addEventListener('click', function() {
    const event = new KeyboardEvent('keydown', { key: 'a' });
    document.dispatchEvent(event);
});
document.body.appendChild(button);

游戏控制示例

在游戏开发中,键盘输入常用于控制角色移动:

js实现键盘输入

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

function gameLoop() {
    if (keys['ArrowUp']) console.log('向上移动');
    if (keys['ArrowDown']) console.log('向下移动');
    requestAnimationFrame(gameLoop);
}
gameLoop();

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

相关文章

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现乘

js实现乘

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

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现密码

js实现密码

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

js图片上传实现

js图片上传实现

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

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…