将键盘事件附加到 html5 canvas

2023-11-22

看起来像mouse events将添加听众canvas元素很好,但是keyboard events似乎不适合canvas元素。

例子:http://jsfiddle.net/H8Ese/1/

浏览器: 铬14.0 FF 5.0.1

我知道我可以使用文档级侦听器,但我试图首先获取 Canvas 元素(以便您的键盘可以在页面上的其他任何地方使用)。

关于如何在画布元素上监听关键事件有什么想法吗?


我认为您不能将键盘事件监听器直接添加到画布上。如果您不想在窗口级别注册事件处理程序,那么我认为您可以将画布包装在 div 内并在 div 上注册键盘事件。

<div id="canvasWrapper" style="border:1px solid;   width:600px; height:400px;">
        <canvas id="canvas" width="600" height="400" >
            Could not create Canvas!
        </canvas>
</div>

jQuery("#canvasWrapper").keypress(function(e){
keys[e.keyCode] = true;
alert("key pressed!");
});

另一个有趣的方法是在画布标签上使用 tabIndex 并在画布上绑定按键。我已经更新了 jsfiddle 的代码,也粘贴到此处以供将来参考。

<canvas id="my-canvas" tabindex="1"></canvas>


$("#my-canvas").bind({
keydown: function(e) {
    var key = e.keyCode;
   var elem=document.getElementById("my-canvas");

    var context=elem.getContext("2d");
    context.font = "bold 20px sans-serif";
    context.clearRect(0,0,300,200);
    context.fillText("key pressed " + key, 10,29);

},

focusin: function(e) {
    $(e.currentTarget).addClass("selected");
},

focusout: function(e) {
    $(e.currentTarget).removeClass("selected");
}
});
$("#my-canvas").focus();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将键盘事件附加到 html5 canvas 的相关文章

  • jquery画布图像下载

    我有我的画布元素和一些 div 单击后我希望打开下载 画布快照 现在我有 save live click function e var image canvas toDataURL image png true var imageEleme
  • 如何为多个画布图像填充颜色?

    这是我第一次使用 html5 canvas 我还不知道它是如何工作的 我的问题是 我必须修改画布中图像的颜色 如果只有一张图像 这很容易 但是 我会有不止一张 换句话说 重叠的图像 为了进一步理解我的问题 我创建了一个插图 只有 2 个图像
  • 加载对象内容后运行 Javascript 函数

    当内容的内容时 如何运行 Javascript 函数已加载 这DOMContentLoaded事件在此之前触发 以及依赖它的东西 例如 JQuery 的 同样地 Compare this http plnkr co edit znu5iz3
  • 在 JavaScript onClick 事件处理程序中转义双引号

    下面的简单代码块可以在静态 HTML 页面中提供 但会导致 JavaScript 错误 您应该如何转义中嵌入的双引号onClick处理程序 即 xyz 请注意 HTML 是通过从数据库中提取数据动态生成的 其中的数据是其他可能带有单引号或双
  • 将元素传递给事件监听器回调函数

    在下面的代码中 document getElementById elem addEventListener blur function myScript 如何将 document getElementById elem 对象传递给 mySc
  • 如何将带有参数的事件处理程序添加到 Javascript 中的元素数组中?

    我有一个三步流程 完全依赖 JavaScript 和 Ajax 来加载数据并为流程从一个步骤到下一个步骤设置动画 更复杂的是 步骤之间的过渡 向前和向后 是动画的 当用户通过过程锚点的进度时 会显示当前步骤和先前的步骤 如果他们单击先前的步
  • 在 HTML SELECT 标记中禁用键盘

    我想禁用 HTML SELECT 标记的键盘 以便用户只能使用鼠标来选择选项 我试过了event cancelBubble true on the onkeydown onkeyup and onkeypress没有运气的事件 有任何想法吗
  • HTML5 画布将颜色应用于形状重叠的图像

    我将此图像绘制到 HTML5 画布上 我想做的就是只给它的一部分应用颜色 我想要应用颜色的部分由以下覆盖图像定义 所以 基本上 我想通过叠加来指导我的着色 因此 在覆盖像素与主图像像素相遇的地方 我应该在主图像上应用颜色 至少我认为它是这样
  • 如何使用 javascript 禁用组合键?

    I would like to disable view source shortcut key for IE using JavaScript To disable Ctrl C I am using the following func
  • 无限循环中的 JavaScript 警报消息

    无限循环中的警报框 在这里我尝试在两个连续字段上放置弹出警报消息 这样它们就不能留空 我知道为什么会发生这种情况 因为当第一个函数的 onblur 事件启动时 它会将焦点放在第二个字段上 当它跳回第一个时 第二个文本字段的 onblur 启
  • 无法在 IE 中的选择选项上使用 onmouseover 事件

    更新的代码 function getElements var x document getElementsByTagName option var el document getElementById selectDept el onmou
  • 在自定义对象中实现事件

    我想要的是一个提供一些事件的自定义对象 例如 var CustomObjectTextChangedEventName textChanged var CustomObject function var this this var text
  • 冒泡可用于图像加载事件吗?

    我可以用吗 window addEventListner 某种程度上来说 我所有的图像都有一个display none 图像加载后 我想设置display inline 这样我就可以规范下载图像时显示的内容 在这种情况下 我无法预加载图像
  • 如何使用 CamanJS 更改图像?

    我有多个图像 我想将它们加载到单个图像中
  • 移动 Safari 事件问题

    我设计了一个网站 其菜单最初是不可见的 当用户单击按钮时 菜单将变得可见 用户可以通过两种方式隐藏当前可见的菜单 单击使菜单可见的按钮 单击网页上除菜单之外的任意位置 我对第二个选项进行编码的方式是将onclick事件到window元素 并
  • ArcGIS JavaScript API 3.9 - 鼠标拖动事件在 Internet Explorer 11 中不起作用

    我在 Internet Explorer 11 中遇到来自 ArcGIS API for JavaScript 3 9 的鼠标拖动事件问题代码如下 map on mouse drag zobraudalost function zobrau
  • 使用 elm 高阶函数处理键盘事件

    我正在尝试创建一个高阶函数来创建仅捕获特定关键代码的函数 该代码的灵感来自 EvanonEnter来自他的 todomvc 实现的函数 仅捕获 Enter 函数 onKeyCode Int gt Msg gt Attribute Msg o
  • 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

    我正在尝试构建一个greasemonkey 脚本 它将根据用户与其他动态创建的数据表的交互动态创建数据表 我的问题是 每次创建表时 我都必须进行两次传递 一次用于创建表 另一次用于获取表中我想要添加事件处理程序的所有对象 通过 id 并添加
  • 了解事件时间戳的时间起源

    最近一些浏览器 https googlechrome github io samples event timestamp 开始使用高分辨率 https developer mozilla org en US docs Web API DOM
  • 画布图像遮罩/重叠

    在我的项目中 我必须使用画布在另一个相同尺寸和图案图像上实现一个不同的颜色图像 并且图像不是圆形或矩形形状 所有这些都是波浪形状的 它将应用于单个主背景图像 以便在每个主背景图像上显示多个图形onclick功能 重叠的图像应更改为另一种选定

随机推荐