Maison >interface Web >Tutoriel H5 >Comment HTML5 utilise SVG (exemple de code)
Le contenu de cet article explique comment utiliser SVG (exemple de code) en HTML5. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
L'optimisation du code est un besoin toujours en constante évolution des programmeurs, et l'utilisation raisonnable d'images SVG pour remplacer certaines images PNG/JPG et autres formats est une partie importante de l'optimisation frontale depuis. est l'optimisation, Voyons d'abord les avantages des images SVG :
SVG peut être lu et modifié par de nombreux outils (tels que le Bloc-notes)
SVG est plus petit et plus compressible que les images JPEG et GIF.
SVG est évolutif
Les images SVG peuvent être imprimées en haute qualité à n'importe quelle résolution
SVG peut être agrandi sans perdre la qualité de l'image
Le texte des images SVG est facultatif et consultable (idéal pour créer des cartes)
SVG peut fonctionner avec Technologie Java
SVG est un standard ouvert
Fichier SVG C'est du XML pur
<svg> <g> <path></path> <path></path> </g> </svg>
Les étudiants qui ne connaissent pas SVG doivent avoir des points d'interrogation sur le visage maintenant, comme la première fois que je les ai vus. Ne vous inquiétez pas, commençons par les bases.
SVG est un format d'image basé sur la syntaxe XML et son nom complet est Scalable Vector Graphics. D'autres formats d'image sont basés sur le traitement des pixels, tandis que SVG est une description de la forme d'une image, il s'agit donc essentiellement d'un fichier texte de petite taille et ne sera pas déformé quel que soit le nombre de fois qu'il est agrandi. De plus, SVG est une norme du World Wide Web Consortium et SVG est intégré aux normes du W3C telles que DOM et XSL.
En HTML5, vous pouvez intégrer des éléments SVG directement dans les pages HTML, comme le petit cœur rouge ci-dessus :
<svg> <defs> <rect></rect> <mask> <use></use> </mask> </defs> <g> <use></use> <path></path> </g> </svg>
Le code SVG peut également être écrit avec une terminaison . fichier, puis insérez-le dans la page Web à l'aide de balises telles que <img alt="Comment HTML5 utilise SVG (exemple de code)" >
, <object></object>
, <embed></embed>
et <iframe></iframe>
.
<img alt="Comment HTML5 utilise SVG (exemple de code)" > <object></object> <embed> <iframe></iframe></embed>
CSS peut également utiliser SVG
.logo { background: url(logo.svg); }
Les fichiers SVG peuvent également être convertis en codage BASE64 puis écrits en tant qu'URI de données Page web.
<img alt="Comment HTML5 utilise SVG (exemple de code)" >
Syntaxe SVG
1.
<svg> <circle></circle> </svg>
<svg> <circle></circle> </svg>
Si vous ne spécifiez pas l'attribut width et l'attribut height et spécifiez uniquement l'attribut viewBox, cela équivaut à donner uniquement le rapport hauteur/largeur de l'image SVG. Dans ce cas, la taille par défaut de l'image SVG sera égale à la taille de l'élément HTML qu'elle contient.
2. La balise
Le code ci-dessus définit trois cercles. Les attributs cx, cy et r de l'étiquette
<svg> <circle></circle> <circle></circle> <circle></circle> </svg>Les propriétés CSS de SVG sont différentes de celles des éléments Web. remplissage : couleur de remplissage
.red { fill: red; } .fancy { fill: none; stroke: black; stroke-width: 3pt; }trait : couleur du trait
largeur du trait : largeur de la bordure
3. ;line> est utilisé pour tracer une ligne droite.
Dans le code ci-dessus, l'attribut x1 et l'attribut y1 de la balise
4. La balise
<svg> <line></line> </svg>La balise
5. 6. 7. 8. M:移动到(moveto) 9. 10. 11. 12. 13. 上面代码中, 14. 上面代码中, 15. 上面代码中,矩形会不断移动,产生动画效果。 attributeName:发生动画效果的属性名。 16. 上面代码中, 1. DOM操作 上面代码插入网页之后,就可以用 CSS 定制样式。 然后,可以用 JavaScript 代码操作 SVG。 上面代码指定,如果点击图形,就改写circle元素的r属性。 2. 获取 SVG DOM 注意,如果使用<img alt="Comment HTML5 utilise SVG (exemple de code)" >标签插入 SVG 文件,就无法获取 SVG DOM。 3. 读取 SVG 源码 使用XMLSerializer实例的serializeToString()方法,获取 SVG 元素的代码。 4. SVG 图像转为 Canvas 图像 然后,当图像加载完成后,再将它绘制到 小结 SVG能做的远不止这些,利用SVG做的动画效果,文字效果我们以后给大家详细讲解,今天就先到这里吧。 <svg>
<rect></rect>
</svg>
<svg>
<ellipse></ellipse>
</svg>
<svg>
<polygon></polygon>
</svg>
<svg>
<path></path>
</svg>
L:画直线到(lineto)
Z:闭合路径<svg>
<text>肆客足球</text>
</svg>
<svg>
<circle></circle>
<use></use>
<use></use>
</svg>
<svg>
<g>
<text>圆形</text>
<circle></circle>
</g>
<use></use>
<use></use>
</svg>
<svg>
<defs>
<g>
<text>圆形</text>
<circle></circle>
</g>
</defs>
<use></use>
<use></use>
<use></use>
</svg>
<svg>
<defs>
<pattern>
<circle></circle>
</pattern>
</defs>
<rect></rect>
</svg>
<svg>
<image></image>
</svg>
<svg>
<rect>
<animate></animate>
</rect>
</svg>
from:单次动画的初始值。
to:单次动画的结束值。
dur:单次动画的持续时间。
repeatCount:动画的循环模式。
可以在多个属性上面定义动画。<animate></animate>
<animate></animate>
<svg>
<rect>
<animatetransform></animatetransform>
</rect>
</svg>
JavaScript 操作SVG
如果 SVG 代码直接写在 HTML 网页之中,它就成为网页 DOM 的一部分,可以直接用 DOM 操作。<svg>
<circle></circle>
<svg></svg></svg>
circle {
stroke-width: 5;
stroke: #f00;
fill: #ff0;
}
circle:hover {
stroke: #090;
fill: #f8f8f8;
}
var mycircle = document.getElementById('mycircle');
mycircle.addEventListener('click', function(e) {
console.log('circle clicked - enlarging');
mycircle.setAttribute('r', 60);
}, false);
使用<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();
由于 SVG 文件就是一段 XML 文本,因此可以通过读取 XML 代码的方式,读取 SVG 源码。<p>
<svg>
<!-- svg code -->
</svg>
</p>
var svgString = new XMLSerializer()
.serializeToString(document.querySelector('svg'));
首先,需要新建一个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);
};
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!