繁体   English   中英

画布鼠标移动

[英]Canvas mouse move

也许您可以帮我,我需要用jquery和canvas创建动画。 因此,我想在鼠标移动时更改画布元素的颜色,颜色rgb必须是随机的,并且在mousemove更改时也会更改。

这是我的代码(画布+查询):

window.onload = function()
{
    var canvas  = document.getElementById('canvas'),
    context = canvas.getContext('2d');

      function drawanim(color){

      context.fillStyle=color;
      context.beginPath();
      context.moveTo(106,20);
      context.lineTo(130,67);
      context.lineTo(182,74);
      context.lineTo(144,111);
      context.lineTo(153,163);
      context.lineTo(106,139);
      context.lineTo(60,163);
      context.lineTo(69,111);
      context.lineTo(31,74);
      context.lineTo(83,67);
      context.lineTo(106,20);
      context.fill();
    }
    drawanim("color");

// SOURIS POSITION
      var $canvas = $('#canvas'),
      w = 0,h = 0,
      rgb = [],
      getWidth = function() {
          w = $win.width();
          h = $win.height();
      };
    $('#canvas').resize(getWidth).mousemove(function (e) {
        rgb = [
              Math.round(e.pageX/w * 255),
              Math.round(e.pageY/h * 255),
              150
          ];

          drawanim("rgb('+rgb.join(',')+')");
    });

您没有正确构建字符串:

  drawanim("rgb(" + rgb.join(",") + ")");

一种告诉方法是注意该站点上的语法检测器如何为代码着色。 在您的情况下,它将整个表达式着色为单个字符串。

假设您希望RGB是真正随机的:

rgb = [
    0 | Math.random() * 256,
    0 | Math.random() * 256,
    0 | Math.random() * 256
];

drawanim("rgb(" + rgb.join(",") + ")");

或者,如您的代码所示,它可以响应光标位置; 您应该使用的工具,只需在这里更正引号即可:

drawanim("rgb(" + rgb.join(",") + ")");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM