画布游戏空间栏滚动浏览器

时间:2018-07-29 06:46:36

标签: javascript canvas keyboard-events

var canvas = document.getElementById('myCanvas');
canvas.addEventListener('keydown', function (event) {
   myHandleKeyboardEvent(event);
}, false);

这对我来说很好。事件被发送给我的处理程序。

但是,每当我按下空格键时,浏览器窗口就会滚动。

在键盘事件到达浏览器之前,是否有某种吞咽方法?

(我尝试将处理程序放在windowdocument上,结果相同。)

1 个答案:

答案 0 :(得分:2)

因为它有效,所以我将其发布为答案:

var canvas = document.getElementById("myCanvas");
document.addEventListener(
  "keydown",
  function(event) {
    if (document.activeElement && document.activeElement.id === canvas.id) {
      event.preventDefault();
      myHandleKeyboardEvent(event);
    }
  },
  false
);

摘录现在包含Kaiido给出的重要建议 这是工作演示的链接。 https://codesandbox.io/s/o714xx10nz