Der Inhalt dieses Artikels befasst sich mit der Verwendung von SVG (Codebeispiel) in HTML5. Ich hoffe, dass er für Sie hilfreich ist.
Codeoptimierung ist immer ein ewiges Bedürfnis von Programmierern, und die sinnvolle Verwendung von SVG-Bildern als Ersatz für einige PNG/JPG-Bilder und andere Formatbilder ist ein wichtiger Teil der Front-End-Optimierung Schauen wir uns also zunächst die Vorteile von SVG-Bildern an:
SVG kann von vielen Tools (z. B. Notepad) gelesen und geändert werden
SVG ist kleiner und komprimierbarer als JPEG- und GIF-Bilder.
SVG ist skalierbar
SVG-Bilder können in jeder Auflösung in hoher Qualität gedruckt werden
SVG kann vergrößert werden, ohne dass die Bildqualität verloren geht
Text in SVG-Bildern ist optional und durchsuchbar (ideal zum Erstellen von Karten)
SVG kann mit ausgeführt werden Java-Technologie
SVG ist ein offener Standard
SVG-Datei Es ist reines XML
<svg> <g> <path></path> <path></path> </g> </svg>
Studenten Wer SVG nicht kennt, muss jetzt Fragezeichen im Gesicht haben, genau wie beim ersten Mal, als ich sie sah. Keine Sorge, fangen wir bei den Grundlagen an.
SVG ist ein Bildformat, das auf XML-Syntax basiert, und sein vollständiger Name ist Scalable Vector Graphics. Andere Bildformate basieren auf der Pixelverarbeitung, und SVG beschreibt die Form des Bildes. Es handelt sich also im Wesentlichen um eine Textdatei mit geringer Größe, die nicht verzerrt wird, egal wie oft sie vergrößert wird. Darüber hinaus ist SVG ein Standard des World Wide Web Consortium und SVG ist in W3C-Standards wie DOM und XSL integriert.
In HTML5 können Sie SVG-Elemente direkt in HTML-Seiten einbetten, wie zum Beispiel das kleine rote Herz oben:
<svg> <defs> <rect></rect> <mask> <use></use> </mask> </defs> <g> <use></use> <path></path> </g> </svg>
SVG-Code kann auch in eine Datei mit der Endung .svg geschrieben werden Datei und fügen Sie dann die Webseite mit Tags wie <img alt="Wie HTML5 SVG verwendet (Codebeispiel)" >
, <object></object>
, <embed></embed>
und <iframe></iframe>
ein.
<img alt="Wie HTML5 SVG verwendet (Codebeispiel)" > <object></object> <embed> <iframe></iframe></embed>
CSS kann auch SVG verwenden
.logo { background: url(logo.svg); }
SVG-Dateien können auch in die BASE64-Kodierung konvertiert und dann als Daten auf die Webseite geschrieben werden URI.
<img alt="Wie HTML5 SVG verwendet (Codebeispiel)" >
SVG-Syntax
1.
SVG-Code Platzieren Sie es im Top-Level-Tag
<svg> <circle></circle> </svg>
Wenn Sie nur einen Teil des SVG-Bildes anzeigen möchten, müssen Sie das viewBox-Attribut angeben. Der Wert des Attributs
<svg> <circle></circle> </svg>
Beachten Sie, dass das Ansichtsfenster in den Raum passen muss, in dem es sich befindet. Im obigen Code beträgt die Größe des Ansichtsfensters 50 x 50. Da die Größe des SVG-Bilds 100 x 100 beträgt, wird das Ansichtsfenster auf die Größe des SVG-Bilds vergrößert, d. h. es wird viermal vergrößert.
Wenn Sie das Breitenattribut und das Höhenattribut nicht angeben und nur das ViewBox-Attribut angeben, entspricht dies der Angabe nur des Seitenverhältnisses des SVG-Bilds. In diesem Fall entspricht die Standardgröße des SVG-Bildes der Größe des darin enthaltenen HTML-Elements.
2.
<svg> <circle></circle> <circle></circle> <circle></circle> </svg>
Der obige Code definiert drei Kreise. Die cx-, cy- und r-Attribute der
class-Attribut wird verwendet, um die entsprechende CSS-Klasse anzugeben.
.red { fill: red; } .fancy { fill: none; stroke: black; stroke-width: 3pt; }
Die CSS-Eigenschaften von SVG unterscheiden sich von denen von Webelementen.
Füllung: Füllfarbe
Strich: Strichfarbe
Strichbreite: Rahmenbreite
3.
< Das Tag ;line> wird zum Zeichnen einer geraden Linie verwendet.
<svg> <line></line> </svg>
Im obigen Code stellen das x1-Attribut und das y1-Attribut des
4.
<svg> <polyline></polyline> </svg>
5.
<svg> <rect></rect> </svg>
6.
<svg> <ellipse></ellipse> </svg>
7.
<svg> <polygon></polygon> </svg>
8.
<svg> <path></path> </svg>
M:移动到(moveto)
L:画直线到(lineto)
Z:闭合路径
9.
<svg> <text>肆客足球</text> </svg>
10.
<svg> <circle></circle> <use></use> <use></use> </svg>
11.
<svg> <g> <text>圆形</text> <circle></circle> </g> <use></use> <use></use> </svg>
12.
<svg> <defs> <g> <text>圆形</text> <circle></circle> </g> </defs> <use></use> <use></use> <use></use> </svg>
13.
<svg> <defs> <pattern> <circle></circle> </pattern> </defs> <rect></rect> </svg>
上面代码中,
14.
<svg> <image></image> </svg>
上面代码中,
15.
<svg> <rect> <animate></animate> </rect> </svg>
上面代码中,矩形会不断移动,产生动画效果。
attributeName:发生动画效果的属性名。
from:单次动画的初始值。
to:单次动画的结束值。
dur:单次动画的持续时间。
repeatCount:动画的循环模式。
可以在多个属性上面定义动画。
<animate></animate> <animate></animate>
16.
<svg> <rect> <animatetransform></animatetransform> </rect> </svg>
上面代码中,
1. DOM操作
如果 SVG 代码直接写在 HTML 网页之中,它就成为网页 DOM 的一部分,可以直接用 DOM 操作。
<svg> <circle></circle> <svg></svg></svg>
上面代码插入网页之后,就可以用 CSS 定制样式。
circle { stroke-width: 5; stroke: #f00; fill: #ff0; } circle:hover { stroke: #090; fill: #f8f8f8; }
然后,可以用 JavaScript 代码操作 SVG。
var mycircle = document.getElementById('mycircle'); mycircle.addEventListener('click', function(e) { console.log('circle clicked - enlarging'); mycircle.setAttribute('r', 60); }, false);
上面代码指定,如果点击图形,就改写circle元素的r属性。
2. 获取 SVG DOM
使用<object></object>
、<iframe></iframe>
、<embed></embed>
标签插入 SVG 文件,可以获取 SVG DOM。
var svgObject = document.getElementById('object').contentDocument; var svgIframe = document.getElementById('iframe').contentDocument; var svgEmbed = document.getElementById('embed').getSVGDocument();
注意,如果使用<img alt="Wie HTML5 SVG verwendet (Codebeispiel)" >标签插入 SVG 文件,就无法获取 SVG DOM。
3. 读取 SVG 源码
由于 SVG 文件就是一段 XML 文本,因此可以通过读取 XML 代码的方式,读取 SVG 源码。
<p> <svg> <!-- svg code --> </svg> </p>
使用XMLSerializer实例的serializeToString()方法,获取 SVG 元素的代码。
var svgString = new XMLSerializer() .serializeToString(document.querySelector('svg'));
4. SVG 图像转为 Canvas 图像
首先,需要新建一个Image对象,将 SVG 图像指定到该Image对象的src属性。
var img = new Image(); var svg = new Blob([svgString], {type: "image/svg+xml;charset=utf-8"}); var DOMURL = self.URL || self.webkitURL || self; var url = DOMURL.createObjectURL(svg); img.src = url;
然后,当图像加载完成后,再将它绘制到<canvas></canvas>
元素。
img.onload = function () { var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); };
小结
SVG能做的远不止这些,利用SVG做的动画效果,文字效果我们以后给大家详细讲解,今天就先到这里吧。
Das obige ist der detaillierte Inhalt vonWie HTML5 SVG verwendet (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!