addEventListener for keydown on Canvas(addEventListener 用于 Canvas 上的 keydown)
问题描述
我正在尝试制作一个响应键盘和鼠标输入的画布应用程序.我有这个代码:
I am trying to make a canvas app that responds to keyboard and mouse input. I have this code:
canvas = document.getElementById('canvas');
canvas.addEventListener('mousedown', function(event) {
alert('mousedown');
}, false);
canvas.addEventListener('keydown', function(event) {
alert('keydown');
}, false);
每当我单击鼠标时都会出现mousedown"警报,但从未出现过keydown"警报.相同的代码在 JS Bin 上运行良好:http://jsbin.com/uteha3/66/
The 'mousedown' alert comes up whenever I click the mouse, but the 'keydown' alert never comes up. The same code works fine on JS Bin: http://jsbin.com/uteha3/66/
为什么它不能在我的页面上运行?画布不能识别键盘输入吗?
Why isn't it working on my page? Does canvas not recognize keyboard input?
推荐答案
编辑 - 这个答案是一个解决方案,但更简单和正确的方法是设置画布元素上的 tabindex
属性(由 hobberwickey 建议).
Edit - This answer is a solution, but a much simpler and proper approach would be setting the tabindex
attribute on the canvas element (as suggested by hobberwickey).
您无法聚焦画布元素.解决这个问题的一个简单方法是让你自己"关注.
var lastDownTarget, canvas;
window.onload = function() {
canvas = document.getElementById('canvas');
document.addEventListener('mousedown', function(event) {
lastDownTarget = event.target;
alert('mousedown');
}, false);
document.addEventListener('keydown', function(event) {
if(lastDownTarget == canvas) {
alert('keydown');
}
}, false);
}
JSFIDDLE
这篇关于addEventListener 用于 Canvas 上的 keydown的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:addEventListener 用于 Canvas 上的 keydown


基础教程推荐
- 直接将值设置为滑块 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01