作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用HTML5 <canvas>
元素编写一个蛇游戏演示。我试图注册Keyboard(onkeydown)事件,但是它不起作用。
代码:
canvas.onkeydown = divertDirection; //don't work
//canvas.addEventListener("keydown", divertDirection, false); //don't work
//根据键盘来调振蛇移动的方向
function divertDirection(ev) {
console.log(ev);
}
//register this event for widnow
window.addEventListener("keydown", divertDirection, false); //ok
最佳答案
就像jing3142所说的那样,您不能在不是为它们设计的元素上监听键盘事件。
但是,您可以强制为其设计元素。
canvas.tabIndex = 1000;
canvas.addEventListener
与键盘事件一起使用。
window.addEventListener
更可取,因为这样您就不会干扰页面上的任何其他元素,例如实际的输入元素。
canvas.style.outline = "none";
关于html5-canvas - 如何为HTML5 canvas注册onkeydown事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15631991/
我是一名优秀的程序员,十分优秀!