当前位置:首页 > JavaScript

js实现键盘输入

2026-04-04 04:05:41JavaScript

监听键盘事件

使用 addEventListener 监听键盘事件,常见的事件类型包括 keydownkeyupkeypresskeydownkeyup 可以捕获所有按键,而 keypress 通常用于字符键。

document.addEventListener('keydown', function(event) {
    console.log('Key pressed:', 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' && event.ctrlKey) {
        console.log('Ctrl + Enter pressed');
    }
});

阻止默认行为

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

js实现键盘输入

document.addEventListener('keydown', function(event) {
    if (event.key === ' ') {
        event.preventDefault();
        console.log('Spacebar pressed, default prevented');
    }
});

实现组合键

通过检查修饰键状态实现组合键功能。

document.addEventListener('keydown', function(event) {
    if (event.key === 's' && event.ctrlKey) {
        event.preventDefault();
        console.log('Ctrl + S pressed');
    }
});

表单输入控制

监听输入框的键盘事件,实现实时验证或限制输入。

js实现键盘输入

const input = document.getElementById('myInput');
input.addEventListener('keypress', function(event) {
    if (!/[0-9]/.test(event.key)) {
        event.preventDefault();
        console.log('Only numbers allowed');
    }
});

游戏控制示例

通过键盘控制游戏角色移动。

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('Move up');
    if (keys['ArrowDown']) console.log('Move down');
    requestAnimationFrame(gameLoop);
}
gameLoop();

移除事件监听

不需要时移除事件监听以避免内存泄漏。

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

// 移除监听
document.removeEventListener('keydown', handleKeyPress);

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

相关文章

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js图片上传实现

js图片上传实现

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

js计算器的实现

js计算器的实现

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

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…