javascript - 如何捕获 Canvas 内的元素?

标签 javascript css html

示例:http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_arc 我想了解如何使整个圆圈成为可点击的链接,我该如何捕获该元素? Canvas 内的事件如何运作?

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 Canvas 是基于光栅的,因此它只包含有关像素颜色的信息。出于您的原因,您应该使用一些基于矢量的技术,例如 SVG。

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

关于javascript - 如何捕获 Canvas 内的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014416/

相关文章:

javascript - 为什么 requestMIDIAc​​cess 在本地工作但不能远程工作?

javascript - 获取复选框的值

javascript - 如何在不上传的情况下在本地处理图像(来自手机)?

html - 如果 DIV 具有 float : none property,则 DIV 不包装子 DIV

html - React - onmouseenter 在子元素之间不起作用

html - 根据父元素中元素的数量更改元素的宽度

javascript - AngularJS 数据表

javascript - 使用 javascript 连接 midi 键盘或其他实时 midi 输入?

css - 找到图像的正确路径

javascript - Jquery prepend 不适用于 div 标签