如何将鼠标悬停或与此相关的任何事件绑定到画布上的绘制对象?例如,我尝试了这个:
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] 删除。
我来说两句