基本的に、複数のキャンバスにまたがるグリッドを作成しようとしていますが、最初と最後のキャンバスで奇妙な動作が発生します。線の色と間隔が変更されます。どうしてそうなるのかわかりません。関連するコードは次のとおりです。リンクをたどって実際の動作を確認してください。(サイトは進行中です) http://www.gjar-po.sk/~hudak9c/test3/
var canvasCount = document.getElementsByTagName("canvas").length;
if (canvasCount > 0) {
for (var i = 0; i < canvasCount; i++) {
var canvas = document.getElementsByTagName("canvas")[i];
if (canvas.getContext("2d")) {
var can = canvas.getContext("2d");
can.beginPath();
for (var x = 5; x < 640; x += 20) {
can.moveTo(x, 0);
can.lineTo(x, canvas.height);
}
for (var y = 5; y < canvas.height; y += 20) {
can.moveTo(0, y);
can.lineTo(canvas.width, y);
}
can.lineWidth = 1;
can.strokeStyle = "#000";
can.stroke();
} else {
alert("getContext fail");
}
}
}
編集:私はなんとか問題を修正することができました。これは、キャンバスの幅と高さを、canvas.widthとcanvas.heightではなく、style.widthとstyle.heightで設定したために発生しました。これにより、サイズ変更ではなく、デフォルトのサイズから拡大/縮小されました。