如何捕捉画布内的元素?

例如:http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_arc我想学习如何让整个圈子成为一个可点击的链接,我如何捕获该元素? 事件如何在画布内工作?

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(100, 75, 50, 0, 2 * Math.PI);
ctx.stroke();
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>

HTML5画布是基于光栅的,因此它只包含有关像素颜色的信息。 出于你的理由,你应该使用一些基于矢量的技术,如SVG。

如果你真的想使用画布,你只需要知道在光标下是否有任何东西,你可以检查单击像素的颜色: context.getImageData(x, y, 1, 1).data它将返回RGBA值的数组。 所以你可以例如检查点击的像素是否不透明或不是背景颜色。 检查它如何工作:http://jsfiddle.net/5qt4hezb/1/

链接地址: http://www.djcxy.com/p/63977.html

上一篇: How to capture an element inside a canvas?

下一篇: Drag and Drop Multiple Objects in HTML5 Canvas