繁体   English   中英

如何检查一个键(在键盘上)是否被按住?

[英]How to check if a key (on the keyboard) is being held down?

基本上是标题。 我需要一个 function,它的工作原理有点像蹲伏按钮 - 角色只有在按住向下箭头键时才会蹲伏,而不仅仅是按下一次。 我如何使它工作? 这是我尝试过的,但它不起作用。 提前致谢!!!!!

document.onkeydown = function (event) {
    let key = event.key;
    while (key ==  "ArrowDown") {
        character.style.width = 50 + "px";
        character.style.height = 30 + "px";
        character.style.top = 115 + "px";
    }
}

当您按住任何键时, keydown事件会持续触发,当您释放键时,会触发keyup事件。

要实现您想要做的事情,请在触发keydown事件时将 styles 添加到角色,并在keyup事件中从角色中删除这些 styles。

以下代码片段显示了一个示例:

 const character = document.querySelector('.character'); document.body.addEventListener('keydown', (event) => { character.classList.add('crouch'); }); document.body.addEventListener('keyup', (event) => { character.classList.remove('crouch'); });
 div { width: 100px; height: 100px; background: yellow; position: relative; }.crouch { height: 50px; top: 50px; }
 <div class="character">Press any key</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM