HTML5画布Mouseover事件

用户名

如何将鼠标悬停或与此相关的任何事件绑定到画布上的绘制对象?例如,我尝试了这个:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();

//STEP ONE
var stepOneRec = ctx.rect(20, 60, 266, 50);
ctx.stroke();
stepOneRec.addEventListener("mouseover", function() { alert('it works!'); });

我在一个站点上看到它展示了一种使用Kinetic.js的方法。如果那是唯一的方法,我将使用它,我只是假设有一种无需额外插件即可将事件绑定到绘制元素的方法。对不起,帆布菜鸟。我在这里用我的代码摆弄:http : //jsfiddle.net/jyBSZ/2/

斯科特·梅默斯坦

(我以发布的评论开始,然后意识到这是一个实际的答案。)

不幸的是,单独使用javascript不能。没有画布对象,只有画布整体,以及您在画布上下文中使用的任何对象。诸如dynamic的插件可以为您创建对象,但是canvas的全部目的是浏览器可以将其视为单个静态图像。

如果愿意,可以将mousemove事件绑定到画布,跟踪其位置和绘制对象的位置,并暗示自己位于“该对象”之上(实际上是插件所做的事情),但这全都是mousemove事件在单个画布上,而不是其组件上的鼠标悬停事件。(您甚至可以使事件绑定为“对象”模拟一个鼠标悬停事件,但在下面,它仍然基于检查运动并检查您自己的对象设置。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章