在javascript中如何检测用户是否持有密钥?

时间:2018-01-18 23:24:48

标签: javascript

我正在尝试制作一款游戏,其功能是如果按住shift键,播放器将加速。我试图使用keyEvent但它无法检测到按键被按住或按下。当我松开换档键时,播放器保持加速模式,不会将速度恢复正常。有没有可能的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

您应该收听两个事件:keydownkeyup。在每个事件类型中,您应该检查密钥(“shift”的键码是16),在keydown上您应该开始操作,并在keyup停止它(如果event.keyCode === 16) 。这是一个简单的文字颜色示例,按下“shift”时变为红色(不要忘记点击片段的打开窗口,没有它就无法工作,因为如果不关注此窗口,所有事件都将“退出”范围“为代码段”:

var onkeydown = (function (e) {
  if (e.keyCode === 16) {
    document.getElementById("target").style.color = "red";
  }
});

var onkeyup = (function (e) {
  if (e.keyCode === 16) {
    document.getElementById("target").style.color = "black";
  }
});
<h1 id="target">Red when holds "shift"</h1>