在画布中制作可点击区域以更改图像

时间:2012-05-22 21:39:36

标签: javascript html html5 canvas html5-canvas

请帮帮我:

  • 在下面的画布中创建可点击的区域,我可以将onmousedown = events分配给。我知道如何使用隐形DIV来做到这一点,但我认为在画布上有一种更优雅的方式来做我不知道的事情。

  • 当我单击其中一个区域时,想要将图像名称传递给一个函数,以便将显示的图像更改为另一个图像,然后将其更改为onmouseup。

如果你只给我一个区域和一个mousedown / mouseup示例,我可以做其余的...谢谢。

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>

        <canvas id="myCanvas" width="506" height="319" style="border:1px solid #c3c3c3;">
        Your browser does not support the canvas element.
        </canvas>

        <script type="text/javascript">
        var c=document.getElementById("myCanvas");
        var ctx=c.getContext("2d");
        var img=new Image();
        img.onload = function(){
        ctx.drawImage(img,0,0);
        };
        img.src="firstImage.gif";
        </script>

        /////////HERE NEED/////////
                    CREATE CLICKABLE REGION <region>
                    <region>
                    onmousedown=changeCanvasImage(secondImage.gif) //change image on click
                    onmouseup=changeCanvasImage(firstImage.gif)  /change it back when done
        </region>
</body>
</html>

1 个答案:

答案 0 :(得分:5)

canvas元素可以触发事件,但画布中的图形元素不能。要做到这一点,您需要自己实现它,方法是在点击它时检测position of the mouse on the canvas并将值与画布中的某些内容相关联,或者使用可用的许多canvas libraries中的一个来处理检测你。