Wie auf meinem Jfiddle zu sehen, habe ich 3 Leinwände, die eine Form Rendern, aber es nur auf der letzten Leinwand rendert. Ich denke, ich könnte etwas vermissen, aber ich habe über die Canvas-Elemente geloopt, so dass ich dachte, es würde nur auf allen von ihnen funktionieren. Ich bin neu in Javascript, tut mir leid, wenn es dummes Denken ist.Warum wird Canvas Shape nur auf der letzten Leinwand von 3 gerendert?
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();
}
Mein Fiddle:
Der Onload wird erst ausgeführt, nachdem die Ausführung der for-Schleife abgeschlossen ist. Dann läuft der Onload und ctx wird der letzte Kontext in der Schleife sein. – Blindman67