Ich arbeite an einem Projekt, das das Erstellen mehrerer Canvas-Elemente erfordert (einzeln Balken, die jeweils eine unterschiedliche Farbübergang darstellen). Ich möchte dies dynamisch mit fabric.js tun, z. B .:
function add_gradient(color_stops){
// Füge ein neues rechteckiges Canvas mit der angegebenen Farbübergangsfüllung hinzu
var grad_box = document.getElementById("divWithCanvases");
var newCanvas = document.createElement("canvas");
grad_box.appendChild(newCanvas);
var gradCanvas = fabric.Canvas(newCanvas, {width: 500, height:50});
var ctx = gradCanvas.getContext('2d');
// Mach etwas mit dem Canvas...
}
Der Aufruf von fabric.Canvas
schlägt jedoch mit dem Fehler "this.initialize ist undefiniert" fehl. (fabric.js Zeile 1627, Version 1.4.13)
Wie kann ich entweder:
- Eine neue Fabric-Leinwand basierend auf einem HTML-Element generieren (anstelle der Zeichenfolgen-ID), oder,
- Ein automatisch generiertes neues Canvas-Element an das DOM anhängen? (das Formfabric.Canvas() ohne Argumente wird... etwas machen... aber es kann nicht mit
appendChild
verwendet werden)
Laut der fabric.js-Dokumentation akzeptiert der Fabric.Canvas-Konstruktor entweder ein HTMLElement oder eine Zeichenfolgen-Element-ID. Ich kann es nur mit der Zeichenfolge zum Laufen bringen.