>So zeichnen Sie skalierbare Vektorgrafiken (SVGs) mit JavaScript
Veröffentlicht: 2023-02-25Angenommen, Sie möchten eine detaillierte Antwort zum Zeichnen von skalierbaren Vektorgrafiken oder SVGs mit JavaScript, hier ist eine Möglichkeit, dies zu tun. SVGs sind ein XML-basiertes Vektorbildformat für zweidimensionale Grafiken mit Unterstützung für Interaktivität und Animation. Die SVG-Spezifikation ist ein offener Standard, der seit 1999 vom World Wide Web Consortium (W3C) entwickelt wird. Mit JavaScript können Sie das Document Object Model (DOM) verwenden, um auf Elemente eines SVG-Dokuments zuzugreifen und diese zu manipulieren. Sie können beispielsweise Elemente hinzufügen oder entfernen, ihre Attribute ändern oder sie animieren. Das Folgende ist ein einfaches Beispiel dafür, wie man ein SVG-Dokument mit einem Kreiselement erstellt und es dem DOM hinzufügt. Erstellen Sie zunächst ein HTML-Dokument mit einem Element und legen Sie dessen Breiten- und Höhenattribute fest. Erstellen Sie als Nächstes ein Element und legen Sie seine cx- und cy-Attribute fest, um die x- und y-Koordinaten des Mittelpunkts des Kreises zu definieren. Legen Sie dann das r-Attribut fest, um den Radius des Kreises zu definieren. Fügen Sie schließlich das Element dem Element hinzu. Das Dateiformat.svg, das zum Speichern von Bildern und Daten verwendet wird, ermöglicht eine dynamischere Skalierung. XML-Markup wird verwendet, um zu beschreiben, wie diese gezeichnet und ausgerichtet werden, anstatt einfach zu beschreiben, wie der Pfad gezeichnet wird. Wenn Sie das Markup in eine HTML-Datei rendern, wird es genauso angezeigt wie das Symbol. Wenn Sie SVG-Symbole dynamisch zu Daten von einem entfernten Standort hinzufügen möchten, während sie gerendert werden, kann diese Methode verwendet werden. XML-Tags können wie HTML-Elemente erstellt und zusammengesetzt werden. Die main.js-Datei der XML-Datei kann mit einer XPath-Funktion erstellt werden. Wir werden das Anker-Tag in der Grafik platzieren, nachdem es erstellt wurde, damit die Bildlauffunktion ausgeführt werden kann. Daher kann jedes Element danach wie jedes andere Element behandelt werden. Es gibt mehrere Optionen zum Hinzufügen von Stilen, Klassen und – am wichtigsten – Attributen. Die Symbole sind jedem Beitrag vorangestellt und können als Ankerlinks verwendet werden, um das Scrollen zu erleichtern. Die SVG-Plattform ist besser zugänglich. Sie müssen Skripte installiert haben, um Elemente mit SVG auf dem Bildschirm zu zeichnen. Dies ist nicht der richtige Zeitpunkt, um zu überprüfen, ob Ihre Tests abgeschlossen wurden. Sie können sie leicht lösen, indem Sie sich die Seite durchlesen, bevor Sie das Quiz absolvieren. Können wir Javascript in SVG verwenden? Ein Skript sollte am Ende des Dokuments platziert werden, damit es vollständig zugänglich ist und Blockierungen vermieden werden. SVGs können mit dem Document Object Model (DOM) auf die gleiche Weise wie HTML angezeigt werden. Infolgedessen können sie mit Javascript recht einfach manipuliert werden. In diesem Kurs werde ich behandeln, wie man sowohl Inline- als auch externe SVGs verwendet. Die Codebeispiele sind auf GitHub verfügbar, das sich oben in diesem Beitrag befindet. Wenn Sie ein externes SVG verwenden, ist es nicht erforderlich, beim Einfügen des Elements denselben Code zu verwenden. Da das SVG nicht auf das in die Seite eingebettete HTML-Dokument zugreifen kann, können wir es verwenden, um andere SVGs darauf zu ersetzen. Wenn Sie den JS-Code mit CDATA umschließen, analysiert XML ihn als Teil von XML. Das Erstellen und Entfernen von Elementen in HTML ist dasselbe. Die Methode createElementNS() des entsprechenden Dokuments muss den Elementnamen und den SVG-Namensraum übergeben, damit Sie Elemente erstellen können. Wenn Sie ein Element entfernen möchten, müssen Sie zunächst mit createTextNode() einen separaten Textknoten erstellen und diesen dann an das Textelement anhängen. Da sie nicht im selben Dokument vorhanden sind, funktionieren sie gut. Die Vor- und Nachteile von SVG Aufgrund ihres vektorbasierten, XML-formatierten Formats verschlechtern sich SVGs nicht und hängen nicht von der Auflösung ab, sodass sie einfach in der Größe geändert werden können. CSS und/oder JavaScript können verwendet werden, um SVGs einfach zu manipulieren und zu animieren. Da SVG weniger Speicher benötigt und weniger Zeit zum Laden benötigt als JPG, JPEG, PNG und andere Formate, ist es ideal für responsives Design. SVG ist nicht nur ein vielseitiges Dateiformat, sondern unterstützt auch Animationen und Transparenz. Es gibt nur ein Problem bei der Verwendung dieses Formats: Es ist nicht so weit verbreitet wie andere Standardformate wie PNG, daher ist es nicht immer so einfach, es auf Ihre Website hochzuladen und richtig anzuzeigen, und es ist nicht immer so kompatibel mit älteren Browsern und Geräte.Ist SVG Javascript-abhängig?Aufgrund seiner primitiven Natur ist es extrem reaktionsschnell, aber es fehlen Textwiedergabefunktionen und jede Interaktion mit dem Element ist von JavaScript abhängig. Ein vektorbasiertes Bild kann in der Größe angepasst werden, ohne Unschärfe zu verursachen (obwohl es eine Komprimierung erfordert). Jede gezeichnete Form besteht aus einem Objekt in SVG. HTML zu SVG Javascript Mit JavaScript ist es möglich, HTML in SVG umzuwandeln. Dies kann mit einer Bibliothek wie canvg erfolgen. Mit canvg ist es möglich, SVG-Dokumente innerhalb von HTML-Seiten zu parsen und zu rendern. Dies ermöglicht die Integration von Vektorgrafiken mit anderen Webtechnologien. In diesem Tutorial wird erläutert, wie eine skalare Vektorgrafik (SVG) auf einer Seite angezeigt wird. Eine HTML-Seite kann einen XML-Dialekt haben, der Informationen in Form eines HTML-Bildes oder einer XML-Deklaration anzeigt. In diesem Artikel vergleichen wir die JavaScript-Syntax zum Einfügen und Ändern von HTML-Elementen mit der SVG-Syntax zum Einfügen und Ändern von HTML-Elementen. Wir werden uns einen beispielhaften Anwendungsfall ansehen, bevor wir unsere Methode entwickeln. Ein einfaches Element, wie z. B. ein >div, sollte einem SVG hinzugefügt werden können. Die createSVG-Methode wird im folgenden Beispiel zweimal verwendet. Wir können ein SVG mit HTML und CSS feingranular steuern, indem wir JavaScript und CSS verwenden. Die Methode document.createElementNS, die wir verwenden, besteht aus zwei Parametern: document.createElementNS und document.createElementNS. Eine Variable, die verwendet wird, um das Objekt anzugeben, an das übergeben werden soll, ist o. Um Großbuchstaben zu finden und sie durch einen Bindestrich (-) gefolgt von einem Kleinbuchstaben zu ersetzen, verwenden wir daher einen regulären Ausdruck /[AZ]/g, der camelCase-Objekte und Bindestrichsyntax verwendet, um Großbuchstaben zu finden und zu ersetzen mit Bindestrichen (-). Sobald das Element zurückgegeben wurde, müssen wir es nur noch als anhängendes Element zurückgeben.Svg in Javascript: Was Sie wissen müssenWie können Sie SVG in JavaScript verwenden? Da jede Komponente des Bildes mit CSS gestaltet oder mit JavaScript skriptgesteuert werden kann, sind sie ein fantastisches Styling-/Skripting-Tool. Wie kodiert man SVGs in HTML? Bilder können direkt in HTML-Dokumente geschrieben werden, indem das Tag svg>/svg> verwendet wird. Wenn Sie beabsichtigen, das SVG-Bild in Ihrem HTML-Dokument zu verwenden, sind die folgenden Schritte erforderlich: Öffnen Sie das Bild in Ihrem VS-Code oder Ihrer bevorzugten IDE, kopieren Sie den Code und fügen Sie ihn in das body-Element ein. Warum wird HTML sva immer noch verwendet? Es hat einige Zeit gedauert, aber Silverlight wird jetzt in allen gängigen Browsern und Geräten weitgehend unterstützt. Die SVG-Datei ist superklein, durchsuchbar, modifizierbar – per Code und skalierbar, zusätzlich dazu, dass sie superklein, durchsuchbar, modifizierbar und modifizierbar ist. Diese vielseitigen Geräte können in jeder Größe verwendet werden und sind mit HTML kompatibel (Erstellen einer Website, aber nicht programmieren wollen), indem Sie einfach auf Bilder oder Inline klicken. Sie können ein kostenloses Starter-Kit für Ihr Auto erhalten. XML-Anwendungen wie SVG können sowohl XML 1.0 als auch XML-Namespaces verwenden. Wenn der SVG-Inhalt in HTML-Dokumente eingefügt wird, kann die HTML-Syntax gelten und möglicherweise nicht mit XML kompatibel sein.Svg Javascript-BeispieleEs gibt viele Beispiele für die Verwendung von JavaScript mit SVG. Beispielsweise können Sie JavaScript verwenden, um die Position, Größe oder andere Attribute eines SVG-Elements dynamisch zu aktualisieren. Sie können auch JavaScript verwenden, um ein SVG-Element zu animieren. Eine Vektorgrafik kann mit einer Technik gestreckt werden, die als Scalable Vector Graphics bekannt ist. Extensible Markup Language (XML) ist ein Bildformattyp, der nur für vektorbasierte Grafiken gilt. Ein SVG-Bild kann auf vielfältige Weise in CSS und HTML verwendet werden. In diesem Tutorial lernen wir sechs verschiedene Techniken kennen. In dieser Lektion zeigen wir Ihnen, wie Sie ein sva als CSS-Hintergrund verwenden. In diesem Fall muss die .htaccess-Datei mit der gleichen Syntax wie das HTML-Dokument geladen werden. In diesem Fall verwenden wir jedoch anstelle von HTML CSS, um weitere Anpassungen vorzunehmen. Sie können einer Website auch ein Bild hinzufügen, indem Sie ein HTML-HTML-Element verwenden. Die Option >Objekt> kann in allen Browsern verwendet werden, die Scalable Vector Graphics (SVG) unterstützen. In HTML und CSS kann das HTML-Element in der Syntax <embedsrc=happy.svg“ /> verwendet werden, um ein Bild einzubinden. Die Mehrheit der modernen Browser unterstützt keine >Browser-Plug-Ins mehr, daher sollte man sich auf >embed[/gt; ist im Allgemeinen keine gute Idee. Bilder in SVG umwandeln, um Webgrafiken in besserer Qualität zu erhalten Browser. Canvas.js, das zuvor in Chrome, Firefox und Opera verfügbar war, ist eines der beliebtesten. SVG-Bild dynamisch in Javascript erstellen Mit JavaScript ist es möglich, ein SVG-Bild dynamisch zu erstellen. Dazu erstellen Sie ein neues XMLHttpRequest()-Objekt und setzen den responseType auf „text/xml“. Nachdem das Objekt erstellt wurde, kann mit der Methode open() eine Verbindung zu einer externen SVG-Datei hergestellt werden. Das onload-Ereignis kann verwendet werden, um eine Callback-Funktion auszuführen, die die SVG-Datei parst und ein XMLDocument-Objekt erstellt. Schließlich kann die Methode createElementNS() verwendet werden, um ein SVG-Bildelement zu erstellen. Dieses Tutorial zeigt Ihnen, wie Sie dynamische Elemente mit sva erstellen. Die MDN-Dokumentation besagt, dass http://www.w3.org/2000/svg die Syntax für die SVG-Datei ist. Der Name des Elements, das wir erstellen – Rechteck, Text, Kreis usw. – muss qualifiziert sein. Uns stört das nicht, denn der optionale Optionsparameter spielt keine Rolle. Was sind Präsentationsattribute, CSS und Inline-Stile? Mit den GreenSock-Tools können wir Attribute oder Inline-Stile als Optionen auswählen. CSS kann verwendet werden, um Attribute wie cy, cy, r usw. in modernen Browsern zu manipulieren. Höchstwahrscheinlich möchten Sie CSS-Eigenschaften (Stylesheet oder Inline-Stil) so weit wie möglich verwenden. In diesem Artikel gehe ich darauf ein, wie man dynamische Elemente mit HTML, CSS und Präsentationsattributen erstellt. Wir verwenden eine Variable, um die Anzahl der Rechtecke, Breite und Höhe zu bestimmen, die ein SVG haben soll. In der kommenden Version der Software mit dem Namen SVG2 werden neue Geometrieeigenschaften enthalten sein, aber ich kann nicht viel darüber sagen, da sie noch nicht veröffentlicht wurden. Wir wollen diese Elemente in Aktion sehen, um ihre Effizienz messen zu können. Das Clip-Path-Tool kann verwendet werden, um dynamische Elemente zum Stamm einer SVG hinzuzufügen. In dieser Demonstration erstellen wir eine gestrichelte Version der Grundfarbenkreise und fügen sie einer Gruppe hinzu, sodass wir sie sofort sichtbar machen können. Jedes abgeschnittene Rechteck hat einen Tween von 100 und wird unter dem Kreis platziert, an dem es abgeschnitten wurde. Wenn die Abspielposition umgekehrt wird, wird auch das Tween umgekehrt. Da wir am Anfang des Tweens klicken, passiert an dieser Stelle nichts. Das Tween wird dann in unsere Animationen übertragen. Um zu demonstrieren, wie die Zahlenanzeige aufgebaut ist, habe ich eine wellenförmige innere Schleife und eine äußere Schleife verwendet. Die innere Schleife erstellt fünf vertikale Linien durch Aufrufen der Funktion makeLine(), während die äußere Schleife die Zahl über dem größeren Teilstrich durch Aufrufen der Funktion makeNumber() erstellt. Es ermöglicht Ihnen, Dinge im Handumdrehen anzupassen, ohne auf Vektorsoftware zurückgreifen zu müssen.Erstellen eines SVG-AnsichtsfenstersEin Ansichtsfenster ist ein rechteckiger Bereich, in dem ein SVG-Dokument angezeigt werden kann. Setzen Sie das viewBox-Attribut eines svg>-Elements auf eine Liste mit vier Zahlen: min-x, min-y, min-width und min-height. Die Position und Dimension eines SVG-Ansichtsfensters werden durch das viewBox-Attribut bestimmt, das im Benutzerbereich definiert ist. Das viewBox-Attribut stellt vier Zahlen dar: min-x, min-y, Breite und Höhe. Das Ansichtsfenster wird durch min-x in der ersten Zahl dargestellt. Die zweite Zahl gibt die oberste Position des Ansichtsfensters an, min-y. Die Breite des Ansichtsfensters im Benutzerbereich wird in der dritten Zahl, Breite, definiert. Der vierte Wert, Höhe, definiert die Höhe des Ansichtsfensters im Benutzerbereich. Ein Ansichtsfenster kann gezeichnet werden, indem zuerst ein Element mit dem Attribut viewBox erstellt wird und anschließend dessen Wert auf die Werte des Ansichtsfensters gesetzt wird. Sie können dann die draw()-Methode des svg>-Elements verwenden, um das Objekt zu zeichnen. Legen Sie das viewBox-Attribut eines svg>-Elements auf vier Zahlen fest: min-x, min-y, min-z und height-x. SVG-Elemente SVG-Elemente sind grafische Elemente, die einem HTML5-Dokument hinzugefügt werden können. Sie können zum Erstellen von Linien, Formen und Bildern verwendet und mit CSS angepasst werden.