Heim Web-Frontend H5-Tutorial Einführung in SVG 2D in HTML5 12 – Einführung in SVG DOM und DOM-Operationen_html5 Tutorial-Fähigkeiten

Einführung in SVG 2D in HTML5 12 – Einführung in SVG DOM und DOM-Operationen_html5 Tutorial-Fähigkeiten

May 16, 2016 pm 03:50 PM
2d dom svg

Durch die Verwendung von Skripten können verschiedene komplexe Aufgaben problemlos erledigt werden, und es handelt sich auch um eine gängige Methode zur Vervollständigung von Animationen und Interaktionen. Da SVG ein Element von HTML ist, unterstützt es gewöhnliche DOM-Operationen. Und da SVG im Wesentlichen ein XML-Dokument ist, gibt es auch eine spezielle DOM-Operation, die meist als SVG-DOM bezeichnet wird. Da der IE SVG derzeit nicht unterstützt, sind für die Entwicklung von SVG-Seiten auf Basis des IE natürlich andere Methoden erforderlich. Dieser Teil des Wissens ist eigentlich jedem bekannt, also werfen wir einen kurzen Blick darauf.

DOM-Operationen in HTML-Seiten
Jeder sollte mit DOM vertraut sein:

Code kopieren
Der Code lautet wie folgt:


#svgContainer {
width: 400px ;
height: 400px
background-color: #a0a0a0;}

function CreateSVG () {
var xmlns = "http://www.w3.org/2000/svg";
var boxWidth = 300;
var boxHeight = 300;
var svgElem = document.createElementNS (xmlns, "svg");
svgElem.setAttributeNS (null, "viewBox", "0 0 " boxWidth " " boxHeight);
svgElem.setAttributeNS (null, "height". " , boxHeight);
svgElem.style.display = "block";
var g = document.createElementNS (xmlns, "g");
svgElem.appendChild (g);
g. setAttributeNS (null, 'transform', 'matrix(1,0,0,-1,0,300)');
// linearen Farbverlauf zeichnen
var defs = document.createElementNS (xmlns, "defs");
var grad = document.createElementNS (xmlns, "linearGradient");
grad.setAttributeNS (null, "id", "gradient");
grad.setAttributeNS (null, "x1", "0 % ");
grad.setAttributeNS (null, "x2", "0%");
grad.setAttributeNS (null, "y1", "100%");
grad.setAttributeNS (null , "y2", "0%");
var stopTop = document.createElementNS (xmlns, "stop");
stopTop.setAttributeNS (null, "offset", "0%"); stopTop .setAttributeNS (null, "stop-color", "#ff0000");
grad.appendChild (stopTop);
var stopBottom = document.createElementNS (xmlns, "stop"); setAttributeNS (null, „offset“, „100 %“);
stopBottom.setAttributeNS (null, „stop-color“, „#0000ff“); appendChild (grad);
g.appendChild (defs);
var coords = "M 0, 0";
coords = "l 0, 300"; coords = " l 300, 0"; coords = " l -300, 0";
var path = document.createElementNS (xmlns, "path" ) ;
path.setAttributeNS (null, 'Stroke', "#000000");
path.setAttributeNS (null, 'Stroke-Width', 10); - linejoin', "round");
path.setAttributeNS (null, 'd', coords);
path.setAttributeNS (null, 'fill', "url(#gradient)"); path .setAttributeNS (null, 'opacity', 1.0);
g.appendChild (path);
var svgContainer = document.getElementById ("svgContainer");
svgContainer.appendChild (svgElem); > }


;

Ist Ihnen aufgefallen, dass die DOM-Operation gewöhnlicher HTML-Elemente genau die gleiche ist:
Element auswählen: document.getElementById
Element erstellen: document.createElementNS
Eine andere Möglichkeit, untergeordnete Elemente zu erstellen: element createChildNS
Fügen Sie ein Element hinzu: node.appendChild
Legen Sie die Attribute des Elements fest: element.setAttributeNS/element.setAttribute
Zusätzlich zu den oben genannten Operationen sind auch die folgenden Operationen und Attribute üblich:
Rufen Sie die Elemente ab attributes Attributwert: element.getAttributeNS/element.getAttribute
Überprüfen Sie, ob ein Attribut für das Element vorhanden ist: element.hasAttributeNS
Entfernen Sie ein Attribut des Elements: element.removeAttributeNS
Übergeordnetes Element, untergeordnetes Element und Geschwisterknoten : element.parentNode/element.firstChild/child.nextSibling
Diese Methoden werden hier nicht im Detail vorgestellt, da die Knotenstruktur des DOM-Baums und die Vererbungsbeziehung zwischen Objekten ebenfalls ähnlich sind ausführlich beschrieben. Schüler, die es benötigen, können später auf die Dokumentation von DOM Core Object zurückgreifen.
Es sollte jedoch beachtet werden, dass SVG im Wesentlichen ein XML-Dokument ist. Daher enden die grundlegenden DOM-Methoden alle auf NS, um verwandte Namespaces bereitzustellen, wenn beim Erstellen eines Elements ein Namespace bereitgestellt wurde und es nicht mehrere Namespaces gibt Problem, dann können Sie beim Festlegen verwandter Attribute auch die Version ohne NS verwenden, z. B. die direkte Verwendung von element.setAttribute zum Festlegen des Attributwerts. Im Allgemeinen wird jedoch weiterhin dringend empfohlen, die Version mit NS-Endung zu verwenden, da Diese Version funktioniert immer einwandfrei, auch bei mehreren Namespaces.
SVG DOM
Wie unterscheidet sich das vom Standard-DOM? Ich weiß derzeit nur, dass die Methoden zur Zuweisung von Attributen unterschiedlich sind. Wenn es Schüler gibt, die davon wissen, lassen Sie es mich bitte wissen.
Im obigen Beispiel verwenden wir element.setAttributeNS/element.setAttribute, um Attributen Werte zuzuweisen. Im SVG-DOM können Sie die objektorientierte Methode verwenden, um den Attributen von Objekten Werte zuzuweisen, indem Sie auf dot zugreifen Im Folgenden finden Sie beispielsweise zwei Vergleichsmethoden:
Gemeinsame DOM-Methode:

Kopieren Sie den Code
Der Code lautet wie folgt:

element.setAttribute("x", "10");
element.setAttribute("y", "20"); ("width", "100%");
element.setAttribute("height", "2em"); >

Code kopieren


Der Code lautet wie folgt:
element.x.baseVal.value = 10; element .y.baseval.Value = 20; >DOM-Skript ist ein traditionelles Skript, das durch die Übergabe von Construct-„Wertzeichenfolgen“ zum Festlegen einzelner Elemente gekennzeichnet ist. Der Vorteil des SVG-DOM-Skriptstils besteht darin, dass Sie keine „Wertzeichenfolge“ erstellen müssen, sodass die Leistung besser ist als beim DOM-Skript.
In SVG eingebettetes Skript

Wenn Sie ein Skript in SVG hinzufügen möchten, müssen Sie das bereits erwähnte Skriptelement verwenden Es ist dasselbe wie das Einfügen des Skripts in den externen HTML-Code. Schauen Sie sich ein Beispiel an:




Kopieren Sie den Code

Der Code lautet wie folgt:










Klicken Sie auf diesen Text, um die Rechteckfarbe anzuzeigen.
Klicken Sie auf das Rechteck, um den Rechteckbereich anzuzeigen.
Klicken Sie auf diesen Text, um die Anzahl der Kinder anzuzeigen
Elemente des Stammelements.






在这个例子中,列举了常见的获取DOM对象的方式:
1. Klicken Sie auf „document.getElementById“ oder „document.getElementByClassName“. Klicken Sie auf „document.documentElement“ und „document.rootElement“. 通过事件参数evt.target获取产生事件的对象的对象.
其余的脚本基本和普通的DOM是一样的.


实用参考:
脚本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
开发中心:https://developer.mozilla.org/en/SVG
热门参考:http://www.chinasvg.com/
官方文档:http://www.w3.org/TR/SVG11/
DOM Core Object API:http://reference.sitepoint.com/javascript/Document
SVG DOM常用属性和方法:http://riso.iteye.com/blog/393454, http://riso.iteye.com/blog/393459
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lassen Sie uns darüber sprechen, wie Sie mit SVG einen Bildmosaikeffekt erzielen Lassen Sie uns darüber sprechen, wie Sie mit SVG einen Bildmosaikeffekt erzielen Sep 01, 2022 am 11:05 AM

Wie kann man mit SVG einen Bildmosaikeffekt erzielen, ohne Javascript zu verwenden? Der folgende Artikel wird Ihnen ein detailliertes Verständnis vermitteln, ich hoffe, er wird Ihnen hilfreich sein!

So konvertieren Sie SVG in das JPG-Format So konvertieren Sie SVG in das JPG-Format Nov 24, 2023 am 09:50 AM

SVG kann mit Bildverarbeitungssoftware, Online-Konvertierungstools und der Python-Bildverarbeitungsbibliothek in das JPG-Format konvertiert werden. Detaillierte Einführung: 1. Bildverarbeitungssoftware umfasst Adobe Illustrator, Inkscape und GIMP; 2. Online-Konvertierungstools umfassen CloudConvert, Zamzar, Online Convert usw.;

Welche Möglichkeiten gibt es, DOM-Knoten in Vue3 zu erhalten? Welche Möglichkeiten gibt es, DOM-Knoten in Vue3 zu erhalten? May 11, 2023 pm 04:55 PM

1. Native js ruft den DOM-Knoten ab: document.querySelector (Selektor) document.getElementById (ID-Selektor) document.getElementsByClassName (Klassenselektor).... 2. Holen Sie sich das Instanzobjekt der aktuellen Komponente in vue2: weil jeder vue Jeder Die Komponenteninstanz enthält ein $refs-Objekt, das Verweise auf die entsprechenden DOM-Elemente oder Komponenten speichert. Daher verweisen die $refs der Komponente standardmäßig auf ein leeres Objekt. Sie können der Komponente zunächst ref="name" hinzufügen und dann this.$refs übergeben.

Was bedeutet vue dom? Was bedeutet vue dom? Dec 20, 2022 pm 08:41 PM

DOM ist ein Dokumentobjektmodell und eine Schnittstelle für die HTML-Programmierung. Elemente auf der Seite werden über DOM manipuliert. Das DOM ist eine speicherinterne Objektdarstellung eines HTML-Dokuments und bietet eine Möglichkeit, mithilfe von JavaScript mit Webseiten zu interagieren. Das DOM ist eine Hierarchie (oder ein Baum) von Knoten mit dem Dokumentknoten als Wurzel.

Eine ausführliche Analyse der Verwendung von SVG-Symbolen in vue3+vite Eine ausführliche Analyse der Verwendung von SVG-Symbolen in vue3+vite Apr 28, 2022 am 10:48 AM

SVG-Bilder werden häufig in Projekten verwendet. Der folgende Artikel stellt die Verwendung von SVG-Symbolen in vue3 + vite vor. Ich hoffe, dass er für alle hilfreich ist.

Anleitung zur DOM-Manipulation in PHP Anleitung zur DOM-Manipulation in PHP May 21, 2023 pm 04:01 PM

In der Webentwicklung ist DOM (DocumentObjectModel) ein sehr wichtiges Konzept. Es ermöglicht Entwicklern, das HTML- oder XML-Dokument einer Webseite einfach zu ändern und zu bedienen, z. B. Elemente hinzuzufügen, zu löschen, zu ändern usw. Die integrierte DOM-Operationsbibliothek in PHP bietet Entwicklern auch umfangreiche Funktionen. In diesem Artikel wird die DOM-Operationsanleitung in PHP vorgestellt, in der Hoffnung, allen zu helfen. Das Grundkonzept von DOM DOM ist eine plattformübergreifende, sprachunabhängige API, die dies kann

Was ist der Grund, warum die Ref-Bindung an DOM oder Komponente fehlschlägt, und wie lässt sich das Problem lösen? Was ist der Grund, warum die Ref-Bindung an DOM oder Komponente fehlschlägt, und wie lässt sich das Problem lösen? May 12, 2023 pm 01:28 PM

Beschreibung des Vue3ref-Bindungs-DOM- oder Komponentenfehlerursachenanalyse-Szenarios In Vue3 wird häufig Ref zum Binden von Komponenten oder DOM-Elementen verwendet. Oft wird Ref eindeutig zum Binden verwandter Komponenten verwendet, aber die Ref-Bindung schlägt häufig fehl. Beispiele für Ref-Bindungsfehlersituationen Die überwiegende Mehrheit der Fälle, in denen die Ref-Bindung fehlschlägt, ist darauf zurückzuführen, dass beim Binden des Refs an die Komponente die Komponente noch nicht gerendert wurde und die Bindung daher fehlschlägt. Oder die Komponente wird zu Beginn nicht gerendert und die Referenz ist nicht gebunden. Wenn die Komponente mit dem Rendern beginnt, wird auch die Bindung zwischen der Referenz und der Komponente abgeschlossen. Zu diesem Zeitpunkt treten Probleme auf beim Einsatz komponentenbezogener Methoden. Die an ref gebundene Komponente verwendet v-if, oder ihre übergeordnete Komponente verwendet v-if, um die Seite zu veranlassen

Produziert von der Peking-Universität: Das neueste SOTA mit Texturqualität und Multi-View-Konsistenz, das eine 3D-Konvertierung eines Bildes in 2 Minuten ermöglicht Produziert von der Peking-Universität: Das neueste SOTA mit Texturqualität und Multi-View-Konsistenz, das eine 3D-Konvertierung eines Bildes in 2 Minuten ermöglicht Jan 10, 2024 pm 11:09 PM

Die Konvertierung von Bildern in 3D dauert nur zwei Minuten! Es verfügt außerdem über eine hohe Texturqualität und eine hohe Konsistenz in mehreren Betrachtungswinkeln. Egal um welche Art es sich handelt, das Einzelansichtsbild sieht bei der Eingabe immer noch so aus: Zwei Minuten später ist die 3D-Version fertig: △ Upper, Repaint123 (NeRF) Die neue Methode heißt Repaint123. Die Kernidee besteht darin, 2D zu kombinieren. Die leistungsstarken Bilderzeugungsfunktionen des Diffusionsmodells werden mit den Texturausrichtungsfunktionen der Neuzeichnungsstrategie kombiniert, um qualitativ hochwertige, konsistente Bilder über mehrere Ansichten hinweg zu erzeugen. Darüber hinaus wird in dieser Studie auch eine sichtbasierte adaptive Repaint-Intensitätsmethode für überlappende Bereiche vorgestellt. Repaint123 löst die Probleme früherer Methoden wie große Abweichungen bei mehreren Ansichten, Texturverschlechterung und langsame Generierung auf einen Schlag. Aktueller Gegenstand

See all articles