基本上,我正在尝试创建一个跨越多个画布的网格,但我在第一个和最后一个画布上出现了奇怪的行为。笔触颜色和间距已更改。我不明白它怎么会发生。这是相关代码,请点击链接查看它的实际效果。(该网站正在进行中) 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");
}
}
}
编辑:我设法解决了这个问题。这是由我(显然)通过 style.width 和 style.height 设置画布的宽度和高度引起的,而不是通过 canvas.width 和 canvas.height,这使它们从默认尺寸拉伸/收缩而不是调整大小。