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

pie*_*reh 3 html javascript css

基本上是标题。我需要一个类似于蹲下按钮的功能 - 角色仅在按住向下箭头键时蹲下,而不仅仅是按下一次。我如何使它工作?这是我尝试过但不起作用的方法。提前致谢!!!!!

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";
    }
}
Run Code Online (Sandbox Code Playgroud)

You*_*saf 6

keydown按住任意键时会持续触发事件,松开键时keyup会触发事件。

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

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

const character = document.querySelector('.character');

document.body.addEventListener('keydown', (event) => {
  character.classList.add('crouch');
});

document.body.addEventListener('keyup', (event) => {
  character.classList.remove('crouch');
});
Run Code Online (Sandbox Code Playgroud)
div {
  width: 100px;
  height: 100px;
  background: yellow;
  position: relative;
}

.crouch {
  height: 50px;
  top: 50px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="character">Press any key</div>
Run Code Online (Sandbox Code Playgroud)