html 就是一个 canvas 标签,下面是 js 进行绘图,目标是每 2 秒画出一个同心圆,画 20 次,但是现在等待 2 秒后,全部同心圆将一同出现,我不太明白这应该怎么解决,我也查了闭包,也如下试了,还是不行,可能是我理解闭包不到位,希望有人可以修改一下代码,顺便解释一下我这样不行的原因
var canvas = document.getElementById("canvas");
canvas.width = 1024;
canvas.height = 768;
var context = canvas.getContext('2d');
//循环画同心圆
for (i = 0; i < 200; i += 10) {
(function(j) {
var repeat = "drawCircle(" + j + ")";
console.log(j);
setTimeout(repeat, 2000);
})(i)
}
//画圆函数
function drawCircle(r) {
context.beginPath();
context.lineWidth = 5;
context.arc(300, 300, r, 0, 2 * Math.PI, false);
context.stroke();
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.