这是我的代码。出于某种原因,它绘制的线条主要是灰色。
虽然我的绘制调用实际上并不重叠,但似乎有些线条是在两个笔划样式之间绘制的。一些线是白色的,内部灰色。我的白线比我的灰线厚,所以显然它画的是两条线。画布绘制调用是异步还是什么?
知道为什么吗?
for (var i=0; i<minor_lanes.length; i++) {
connect(minor_lanes[i], "#333", 3);
}
for (var i=0; i<major_lanes.length; i++) {
connect(major_lanes[i], "#fff", 4);
}
for (var i=0; i<limited_lanes.length; i++) {
connect(limited_lanes[i], "#FFFF99", 2);
}
function connect(id, color, width) {
if (!id) {
return;
}
ctx.lineWidth = width;
ctx.strokeStyle = color;
$('#' + id).each(function() {
var laneX = parseInt($(this).css('left')) + $(this).width()/2;
var laneY = parseInt($(this).css('top')) + $(this).height()/2;
ctx.moveTo(x,y);
ctx.lineTo(laneX, laneY);
ctx.stroke();
});
}
答案 0 :(得分:10)
我想你忘了
ctx.beginPath();
// draw path
// stroke
ctx.closePath();