清除画布形状中的文本
Clean text from canvas shapes
如何从画布形状中清除文本?这是我的代码:
<div id="ways" style="width:1000px;margin:0 auto;height:100%;">
<canvas id="canvas" width="1000" height="1000"></canvas>
和小提琴
只需稍微重构代码-
将画圆的线提取到一个函数中,该函数将其中一个圆对象作为参数:
function drawCircle(circle) {
context.beginPath();
context.arc(circle.x, circle.y, circle.radius, 0, 2 * Math.PI, false);
context.fillStyle = 'green';
context.fill();
context.lineWidth = lineWidth;
context.strokeStyle = '#003300';
context.stroke();
}
然后在循环中用这条线(在推送圆对象之后)替换它们最初来自的线:
drawCircle(circles[circles.length-1]); // draw last added circle
现在,您可以通过修改代码在点击事件中使用此功能(在这里,它可以打开和关闭文本):
if (context.isPointInPath(x, y)) {
if (circle.clicked) {
drawCircle(circle); // now we can reuse this function to clear the text
circle.clicked = false;
}
else {
circle.clicked = true;
context.fillStyle = "blue";
context.font = "bold 34px Arial";
context.textAlign="center";
context.fillText("Yeah", circle.x, circle.y);
}
break;
}
改良小提琴
这种方法只需要注意一点:这将重新绘制一个接一个的圆圈。随着时间的推移,由于在边缘添加了抗锯齿,线条将开始看起来锯齿状。出于这个原因,最好是完全清除画布,然后重新绘制所有画布。但我将把它留给你练习…:-)
相关文章:
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- jQuery匹配JSON对象的部分文本
- onkeyup无法动态创建多个文本区域
- 如何在下面的ES6循环中获得前面的文本
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 清除画布形状中的文本
- 仅对路径/形状进行动画处理,在 raphael.js 集中没有文本
- 动态.js动画 包含形状和文本的多个组
- D3JS SVG 文本和形状在同一行上
- 将文本调整为特定形状
- Google地图API -在文本框中显示多个形状的经度和纬度
- 呈现& lt; canvas>文本在任意形状的矢量容器内
- 将SVG文本居中于SVG形状中,在刷新之间保存JavaScript变量值
- 使用HTML5'的globalCompositeOperation "与形状和文本元素在Chrome
- 如何使用jCanvas将文本设置在曲线形状的中心