私のjsfiddleに見られるように、私は1つの形状をレンダリングしている3つのキャンバスを持っていますが、最後のキャンバスにのみレンダリングします。私は何かが欠けているかもしれないと思うが、私はキャンバスの要素をループしているので、すべてのもので動作すると思った。私はJavascriptを初めて使っています。キャンバスシェイプは、3のうち最後のキャンバスにのみレンダリングされるのはなぜですか?
var c = document.getElementsByClassName("myCanvas");
for (var canvas of c) {
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.rect(150, 0, 3, 75);
var img = new Image();
img.src = "https://assets.servedby-buysellads.com/p/manage/asset/id/26625";
img.onload = function() {
var pattern = ctx.createPattern(this,"repeat");
ctx.fillStyle = pattern;
ctx.fill();
};
ctx.closePath();
}
マイフィドル:
onループは、forループの実行が完了するまで実行されません。次に、onloadが実行され、ctxがループの最後のコンテキストになります。 – Blindman67