如何使用HTML5 Canvas获得多个颜色矩形?

时间:2015-02-19 13:17:40

标签: javascript html css html5 canvas

我试图绘制不同颜色的6X6方块。但新颜色压倒了旧颜色。我想为每个广场添加eventhandler。

<canvas id="myCanvas" width="3000" height="1500" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>

JavaScript:

var xPoint = 30;
var yPoint = 30;

var c  = document.getElementsByTagName('canvas')[0];
var ctx = c.getContext("2d");

for(var i =1; i<=6;i++)
{
  var tyPoint = yPoint * i;
  for(var j=1;j<=6;j++)
  {
    var txPoint = xPoint * j;  
    var colorcode = CalculateHEX();


    ctx.beginPath();
    ctx.fillStyle = colorcode ;      
    ctx.rect(20, 20, txPoint , tyPoint );
    ctx.fill();
    ctx.stroke();
    ctx.closePath();
  }

}

function CalculateHEX()
{
alert('HEX');
var rgbCode ="#";
for(var c = 0;c< 3;c++)
  {
    var y = Math.floor((Math.random() * 255) + 1);
    rgbCode  = rgbCode + Number(y).toString(16);
  }
  return rgbCode;

}

这是fiddle

2 个答案:

答案 0 :(得分:2)

您混淆了rect方法中参数的顺序。它应该是:

ctx.rect(txPoint, tyPoint, 20, 20);

前两个参数是矩形左上角的x和y坐标,其余是矩形宽度和高度。

演示: http://jsfiddle.net/j9c5P/413/

答案 1 :(得分:0)

删除JS中的以下行:

   ctx.beginPath();

现在它显示正确的网格,因为你停止了覆盖。

https://jsfiddle.net/j9c5P/414/