我可以检测鼠标当前是否在画布绘制功能中移动?

时间:2014-05-27 18:04:46

标签: javascript html5 canvas html5-canvas

我在HTML5画布中绘制一个矩形。我希望它在绘制时是一种颜色(透明),然后在绘制它时它是另一种颜色(不透明)。有没有办法可以在我的绘图功能中说,也许使用条件,来检测鼠标此刻是否在移动?即

      draw: function(ctx) {

          ctx.beginPath();
          ctx.rect(this.X, this.Y, this.Width, this.Height);
          if(mouseisMoving) {
              ctx.fillStyle = "rgba(0,0,0,1)";
          }
          else {
          ...
          }
          ctx.fill();
          ctx.stroke();
      }

更好的是,改变onleftmouseup的颜色。但是,因为我正在通过一个框架并重写一个draw方法,所以如果我可以在draw方法中做到这一点会更好。本身。这可能吗?

1 个答案:

答案 0 :(得分:2)

您希望将onmousedown和onmouseup事件侦听器附加到canvas元素,该元素设置一个可以通过绘制函数范围访问的布尔值。

类似的东西:

var mouse = false;

canvas.onmousedown = function () {
    mouse = true;
};

canvas.onmouseup = function () {
    mouse = false;
};

var draw = function (ctx) {
    if (mouse) {
        ctx.fillStyle = "rgba(0,0,0,1)";
    }
    ...

};