3
這是我的代碼。出於某種原因,它畫的線大多是灰色的。Canvas strokeStyle不可靠更改?
即使我的繪圖調用實際上沒有重疊,看起來似乎有一些線條是用兩個筆劃樣式在彼此之上繪製的。一些線條是白色的,內部灰色。我的白線比我的灰線厚,顯然它畫了兩條線。畫布繪製調用異步或什麼?
任何想法爲什麼?
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();
});
}
這做到了。所以我只是建立一條線路。畫布上的文檔非常稀疏。謝謝您的幫助。 – Joren
如果你不知道[這個頁面],那麼「令人沮喪的稀疏」(http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html)另外, 'beginPath()'實際上會影響當前路徑 - 'closePath()'基本上將'lineTo()'添加到最後一個子路徑的開始位置,然後在該位置啓動一個新的子路徑。 – ellisbben