当前位置:首页 > JavaScript

js实现键盘

2026-04-05 20:32:59JavaScript

监听键盘事件

在JavaScript中,可以通过addEventListener来监听键盘事件。常见的事件类型包括keydownkeyupkeypress

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

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

获取按键信息

事件对象event包含按键的详细信息,如keycodekeyCode(已废弃)等属性。

js实现键盘

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

阻止默认行为

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

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

组合键检测

通过检查event.ctrlKeyevent.altKey等属性可以检测组合键。

js实现键盘

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

虚拟键盘实现

如果需要创建一个虚拟键盘,可以通过HTML按钮模拟按键,并触发自定义事件。

<div id="keyboard">
    <button data-key="A">A</button>
    <button data-key="B">B</button>
</div>

<script>
    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);
        });
    });
</script>

游戏中的键盘控制

在游戏开发中,通常需要持续监听按键状态(如按住方向键移动角色)。

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('Moving up');
    }
    requestAnimationFrame(gameLoop);
}

gameLoop();

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

相关文章

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

uniapp 跟随键盘

uniapp 跟随键盘

uniapp 键盘弹出时调整布局的方法 在 uniapp 中实现页面内容跟随键盘弹出调整布局,可通过以下方式实现: 监听键盘高度变化 使用 uni.onKeyboardHeightChange 监听…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现下拉菜单

js实现下拉菜单

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

js实现路由

js实现路由

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

js分页实现

js分页实现

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