3

请帮我:

  • 在下面的画布中创建可点击区域,我可以将 onmousedown= 事件分配给。我知道如何用不可见的 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>
4

1 回答 1

5

画布元素可以触发事件,但画布中的图形元素不能。为此,您需要自己实现它,方法是在单击鼠标时检测鼠标在画布上的位置并将值与画布中的某些内容相关联,或者使用许多可用的画布库之一来处理检测为你。

于 2012-05-23T00:27:09.753 回答