Javascript HTML5 clicable画布元素?

Javascript HTML5 clicable画布元素?,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,我正在画布上画一个圆圈。是否可以使我的圆圈可点击 function createCircle(context, x, y, radius, color) { context.beginPath(); context.fillStyle = color; context.arc(x, y, radius, 0, Math.PI * 2, true); context.closePath(); context.fill(); } 我不是专家,但我认为您应该捕获画布上的

我正在画布上画一个圆圈。是否可以使我的圆圈可点击

function createCircle(context, x, y, radius, color) {
   context.beginPath();
   context.fillStyle = color;
   context.arc(x, y, radius, 0, Math.PI * 2, true);
   context.closePath();
   context.fill();
}

我不是专家,但我认为您应该捕获
画布上的
单击
事件,然后编写一个
函数
,检查单击点是否在圆半径内。(即单击点和圆原点之间的差值小于或等于半径)。

当然可以。如果要将光标更改为手(链接上的方式),也可以这样做。只需将onmousemove事件添加到画布中,如果鼠标与中心的距离(您可能需要使用毕达哥拉斯)小于半径,请将画布的CSS属性cursor更改为pointer。当然,否则,将CSS属性返回到默认值。 类似地,添加一个onclick事件,并检测它何时被单击,并在它为真时执行您的操作。
因此,您的画布中有一个可单击的圆圈。

您可以将鼠标向下事件添加到画布中,或者只需将事件侦听器添加为

canvas.addEventListener('mousedown', function(evt) 
{
    var mousePos = getMousePos(canvas, evt);
    var message = 'Mouse position: ' + mousePos.x + ',' + mousePos.y;
        //Here ur getting mouse position x and y coordinates. 
  },
 false);

如果您使用画布的主要目的是创建可点击的对象,那么考虑使用SVG。结果,您可以使用画布本身来确定真的吗?我只是将代码复制到一个HTML文件中,但在Chrome上它对我不起作用。哪些浏览器支持@ellisbben方法?对不起,我的意思是指函数,而不是示例代码。他们给出的“示例”代码是完全错误的,虽然它可以工作(),但我不会将其用作基础。非常感谢,在我之前,我将圆形图像放在了一起,并使其变得简洁,是的,您的建议很好,我可以尝试一下。:)谢谢