如何使用html5和javascript在鼠标单击事件上创建图像

时间:2012-06-27 12:17:28

标签: javascript html5 canvas

我是html5中的新手,我想在点击事件上创建一个像点的图像。我尝试使用上下文,但遗憾的是没有工作。我正在使用的代码是

 document.addEventListener("DOMContentLoaded", init, false);

      function init()
      {
        var canvas = document.getElementById("options");
        canvas.addEventListener("mousedown", getPosition, false);
      }

      function getPosition(event)
      {
        var x = new Number();
        var y = new Number();
        var canvas = document.getElementById("options");

        if (event.x != undefined && event.y != undefined)
        {
          x = event.x;
          y = event.y;
        }
        else // Firefox method to get the position
        {
          x = event.clientX + document.body.scrollLeft +
              document.documentElement.scrollLeft;
          y = event.clientY + document.body.scrollTop +
              document.documentElement.scrollTop;
        }

        x -= canvas.offsetLeft;
        y -= canvas.offsetTop;

        alert("x: " + x + "  y: " + y);
           var b_canvas = document.getElementById("b");
    var b_context = b_canvas.getContext("2d");
    b_context.fillRect(50, 25, 150, 100);

请说明我在哪里做错了。提出你的建议

1 个答案:

答案 0 :(得分:0)

不确定是否存在问题,但要在画布上画一个点,你可以开始一条路径,绘制一个完全闭合的弧(从0 rad到2pi rad)并填充:

     b_context.beginPath();
     b_context.arc(x, y, 5 , 0,  2 * Math.PI,true);
     b_context.fillStyle = "blue";
     b_context.fill();

此外,重要的是直接在画布上设置宽度和高度,而不是在css中设置,以防止失真。 (刚发现自己;)) 完整示例小提琴:http://jsfiddle.net/wHsMJ/(单击右侧矩形内部进行测试)