如何使用HTML5 Canvas获得多色矩形
How to get multiple color rectangle using HTML5 Canvas?
我正在尝试用不同的颜色绘制6X6个正方形。但新的颜色压倒了旧的颜色。我想为每个方块添加事件处理程序。
<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;
}
这是小提琴。
您混淆了rect
方法中参数的顺序。应该是:
ctx.rect(txPoint, tyPoint, 20, 20);
前两个参数是矩形左上角的x和y坐标,其余参数是矩形的宽度和高度。
演示:http://jsfiddle.net/j9c5P/413/
删除JS中的以下行:
ctx.beginPath();
现在它显示了正确的网格,因为您停止了覆盖。
https://jsfiddle.net/j9c5P/414/
相关文章:
- 使用矩JS计算精确的时间差
- 如何在InDesign中使用ExtendScript更改彩色灰度图片的色样
- 如何使用javascript更改
前色/文本颜色以及boder颜色 - 如何使用HTML5 Canvas获得多色矩形
- 避免使用背景色和边框色
- 使用JQuery预加载图像以获得图像的主色
- 如何使用 矩.js 将分钟转换为小时
- 使用 setTimeout() 循环,使矩形变大,直到它到达画布边缘,然后重置
- jQuery.queue() 与使用回调函数完成某事有何不同
- 使用用于在同一函数中命名函数的变量名称有何意义
- jQuery 移动列表分隔符使用错误的色板
- 传单是否可以使用多色多段线
- 为什么要使用 jQuery $(window).ready(),它与 $(window).load() 有何不同
- 手动调用模块与使用browserify动态调用模块有何不同?
- 如何使用css或jquery为文本部分上色
- 在javascript中使用latex为变量上色
- 如何使用角矩来设置格式?
- 如何使用D3.js将数字映射到三色刻度
- 使用埃拉托色尼筛子的素数总和找不到错误
- 在 JavaScript 中使用嵌套循环来生成彼此重叠的专色艺术