作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的例子中,按下两个按钮时在 Canvas 上画了两条不同的线,我怎样才能让第二个按钮清除旧线并画另一条线?
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"></canvas>
<button onclick="draw()">first</button>
<button onclick="draw2()">second</button>
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.strokeStyle = "red";
function draw(){
ctx.moveTo(0,0);
ctx.lineTo(100,200);
ctx.stroke();
}
function draw2(){
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(100,0);
ctx.lineTo(0,200);
ctx.stroke();
}
</script>
我正在使用 clearRect
函数来清除 Canvas ,但是当在第二个绘图上调用 stroke 时,第一个被重绘。
最佳答案
您必须调用 .beginPath()
来清除当前路径并开始一个新路径。在您的情况下,您似乎可以在两个函数的每个函数的开头执行此操作。
关于javascript - 为什么上下文描边会重绘 Canvas 上的旧图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940404/
我是一名优秀的程序员,十分优秀!