当前位置:首页 > 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() 阻止默认行为。

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');
    }
});

表单输入控制

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

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();

移除事件监听

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

js实现键盘输入

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

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

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

相关文章

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现文字滚动

js实现文字滚动

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

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js计算器的实现

js计算器的实现

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