代码之家  ›  专栏  ›  技术社区  ›  Kait Jardine

Javascript彩色矩形数组

  •  0
  • Kait Jardine  · 技术社区  · 7 年前

    我试着用一对for循环生成一个4乘4的16个小矩形数组,每个矩形有不同的颜色。但是,颜色没有改变。

      var x;
      var y;
      var color;
      for (x=0; x < 4; x++){
        for (y=0; y < 4; y++){
          color = 255 - x*20 - y*20;
          ctx.fillStyle = 'rgba(0, 0, color, 1.0)'; 
          ctx.fillRect((x*10), (y*10), 10, 10);
        }
      }
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   epascarello    7 年前

    您将其设置为字符串颜色,而不是变量。你需要确定你是如何建立字符串。

    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    
    
    var x;
    var y;
    var color;
    for (x = 0; x < 4; x++) {
      for (y = 0; y < 4; y++) {
        color = 255 - x * 20 - y * 20;
        ctx.fillStyle = 'rgba(0, 0, ' + color + ', 1.0)'; 
        ctx.fillRect((x*10), (y*10), 10, 10);
      }
    }
    <canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
        2
  •  1
  •   Baboo    7 年前

    color fillStyle ,而不是变量的值 . 以下是固定版本:

      var x;
      var y;
      var color;
      for (x=0; x < 4; x++){
        for (y=0; y < 4; y++){
          color = 255 - x*20 - y*20;
          ctx.fillStyle = 'rgba(0, 0, ' + color + ', 1.0)';  // Here
          ctx.fillRect((x*10), (y*10), 10, 10);
        }
      }