0

我想做的是,如果我将鼠标悬停在我绘制的一个对象上,我想显示一个简介,说明它是哪个城市,人口和他们市中心的图像等。截至目前,我只是想你得到它工作。我还想知道是否有其他东西可以代替警报,而是会产生泡沫的东西

<script>
    function startCanvas() {
      var c = document.getElementById("myCanvas");
      var ctx = c.getContext("2d");
      //first circle
      var one = c.getContext("2d");
      //second circle
      var two = c.getContext("2d");
      //third cirle
      var three = c.getContext("2d");
      //fourth circle
      var four = c.getContext("2d");
      //fifth cirle
      var five = c.getContext("2d");
      // new image
      var image = new Image();
      image.onload = function () {
        ctx.drawImage(image, 69, 50);
        //draw a circle
        one.beginPath();
        one.arc(180, 90, 10, 0, Math.PI * 2, true);
        one.closePath();
        one.fill();
        two.beginPath();
        two.arc(155, 138, 10, 0, Math.PI * 2, true);
        two.closePath();
        two.fill();
        three.beginPath();
        three.arc(160, 180, 10, 0, Math.PI * 2, true);
        three.closePath();
        three.fill();
        four.beginPath();
        four.arc(257, 210, 10, 0, Math.PI * 2, true);
        four.closePath();
        four.fill();
        five.beginPath();
        five.arc(238, 235, 10, 0, Math.PI * 2, true);
        five.closePath();
        five.fill();
      };
      image.src = 'denmark.jpg';



    //function hover over circle one, give alert
      one.addEventListener('mouseover',  
       function (e) {
           e = e || window.event;
           alert('this is a test');
       }
       );


    }
    </script>
    </head>
    <body onload="startCanvas()">
      <canvas id="myCanvas" width="600" height="600";">
        Your browser does not support the HTML5 canvas tag.
      </canvas>
    </body>
    </html>
4

2 回答 2

0

您是否考虑过使用更高级别的绘图库,例如RaphaelJS?还是画架

我已经搞砸了这两个,它们使这种交互式画布的工作更加优雅,并且还将提高您的跨浏览器兼容性。

于 2013-02-14T14:59:00.887 回答
0

你的代码会抛出这个错误

  • 对象 # < CanvasRenderingContext2D > 没有方法 'addEventListener'

所以修改这部分

  //function hover over circle one, give alert
  one.addEventListener('mouseover',  
   function (e) {
       e = e || window.event;
       alert('this is a test');
   }
   );

通过这段代码

//function hover over circle one, give alert
  c.addEventListener('mouseover',  
   function (e) {
       e = e || window.event;
       alert('this is a test');
   }
   ,false);

这将起作用;

于 2013-02-14T17:12:41.963 回答