如何填写一个单元格点击在画布上的网格在html5
how to fill a cell on clicking the grid on canvas in html5
我想在单击特定单元格时填充网格单元格。下面是我的代码:
function drawBox()
{
for (var row = 0; row < 14; row ++)
{
for (var column = 0; column < 13; column ++)
{
var x = column * 40;
var y = row * 40;
context.beginPath();
context.rect(x, y, 40, 40);
context.fillStyle = "white";
context.fill();
context.lineWidth = 3;
context.strokeStyle = 'black';
context.stroke();
}
}
}
我这里有一个工作示例。代码:
var canvas = document.getElementById("canvas"),
c = canvas.getContext("2d"),
boxSize = 40,
boxes = Math.floor(600 / boxSize);
canvas.addEventListener('click', handleClick);
canvas.addEventListener('mousemove', handleClick);
function drawBox() {
c.beginPath();
c.fillStyle = "white";
c.lineWidth = 3;
c.strokeStyle = 'black';
for (var row = 0; row < boxes; row++) {
for (var column = 0; column < boxes; column++) {
var x = column * boxSize;
var y = row * boxSize;
c.rect(x, y, boxSize, boxSize);
c.fill();
c.stroke();
}
}
c.closePath();
}
function handleClick(e) {
c.fillStyle = "black";
c.fillRect(Math.floor(e.offsetX / boxSize) * boxSize,
Math.floor(e.offsetY / boxSize) * boxSize,
boxSize, boxSize);
}
drawBox();
<canvas id="canvas" width="600px" height="600px"></canvas>
我编辑了drawBox()
函数一点,以提高效率。
e.offsetX
是鼠标坐标,除以40
,然后除以Math.floor()
这个得到单元格的编号,然后乘以40
得到单元格的起始坐标。
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 剑道网格jQuery动画()问题
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 我可以更改剑道UI网格吗's的外键值
- HTML5 拖放以重新排列网格中的小部件
- Tumblr 和 HTML5 - 方形网格的画布
- 基于六边形网格的html5 / canvas游戏框架
- 通过HTML5画布上下文进行缩放,并在给定图像上绘制网格
- 平移+缩放HTML5画布网格,固定第一列
- 如何创建nxm HTML5画布对象网格(彩色正方形)
- HTML5画布-用于在网格中放置元素的循环
- 如何配置/样式HTML5可排序网格,使其匹配演示
- HTML5可访问性:如何指示网格和列表布局之间的切换
- 使用javascript在HTML5画布上制作单词搜索网格
- 我如何找到我在HTML5画布中点击的网格正方形元素
- 在HTML5 Web Worker中创建标记的JavaScript网格
- 使用 JavaScript 和 KineticJS 库在 HTML5 画布上以“网格”布局绘制图像
- 如何填写一个单元格点击在画布上的网格在html5