当前位置:首页 > 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实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

js实现复制到剪贴板

js实现复制到剪贴板

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

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现预览

js实现预览

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

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现二叉树

js实现二叉树

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