Ich habe versucht, SVG in plain JS zu manipulieren und festgestellt, dass es sich nicht wie beabsichtigt verhält, wenn ich keine Methoden wie createElementNS
und setAttributeNS
verwenden.Warum nicht dynamische SVG funktioniert, wenn nicht über createElementNS behandelt
<svg id="mydsvg" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
Das obige Markup funktioniert einwandfrei. Wenn Sie jedoch versuchen, über den folgenden Code einen weiteren Kreis hinzuzufügen, werden Sie ihn nicht sehen.
var circle = createElement('circle');
circle.setAttribute('cx', 50);
....
document.getElementById('mysvg').appendChild(circle);
Aber wenn Sie createElementNS
und setAttributeNS
verwenden, wird es wie erwartet funktionieren.
Am schlimmsten sein, beide createElement
und erstellen identische DOM-Text.
Wirklich vollständige Antwort. Vielen Dank. Es wäre sehr nützlich, wenn Sie für den letzten Satz ein kleines Codebeispiel anzeigen können. –