SVG 实例

本章节列出全部 SVG 实例,其中有之前章节里面引用过的,也有很多是新实例。


查看 SVG 文件

目前主流浏览器都支持 SVG,可直接用浏览器打开查看。

查看 SVG 源代码

如需查看 SVG 源代码,请打开这些例子,然后在窗口中右键单击,选择“查看源代码”。


SVG 实例

SVG 形状

矩形

带有透明度的矩形

带有透明度的矩形 2

带有圆角的矩形

圆形

椭圆形

累叠而上的三个椭圆

两个椭圆

一条线

三角形

四边形

折线

路径

螺旋


SVG 滤镜

feGaussianBlur 滤镜

另一个feGaussianBlur 滤镜

feBlend 滤镜

feColorMatrix 滤镜

feComponentTransfer 滤镜

feOffset 滤镜

feOffset、feFlood、feComposite、feMerge 以及 feMergeNode

feMorphology 滤镜


SVG 渐变

线形渐变 (水平渐变)

线形渐变 (垂直渐变)

放射性渐变

放射性渐变 2


SVG Misc

向矩形添加 a 标签,这样矩形就可以作为一个超级链接了:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <svg width="100%" height="100%" version="1.1"
  5. xmlns="http://www.w3.org/2000/svg"
  6. xmlns:xlink="http://www.w3.org/1999/xlink">
  7. <a xlink:href="https://cankaoshouce.com" target="_blank">
  8. <rect x="20" y="20" width="250" height="250"
  9. style="fill:blue;stroke:pink;stroke-width:5;opacity:0.9"/>
  10. </a>
  11. </svg>
  12. </body>
  13. </html>

重复用 5 秒时间淡出的矩形:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>重复用 5 秒时间淡出的矩形</p>
  5. <svg width="400" height="400">
  6. <rect x="20" y="20" width="250" height="250" style="fill:blue">
  7. <animate attributeType="CSS" attributeName="opacity" from="1" to="0" dur="5s" repeatCount="indefinite" />
  8. </rect>
  9. 对不起,您的浏览器不支持 SVG.
  10. </svg>
  11. </body>
  12. </html>

动态改变矩形的 x、y 以及 width、height 属性来创造出动画效果,并改变矩形的颜色:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>动态改变矩形的 x、y 以及 width、height 属性来创造出动画效果,并改变矩形的颜色</p>
  5. <svg width="500" height="500">
  6. <rect id="rec" x="300" y="100" width="300" height="100" style="fill:lime">
  7. <animate attributeName="x" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="0" />
  8. <animate attributeName="y" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="0" />
  9. <animate attributeName="width" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="800" />
  10. <animate attributeName="height" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="300" />
  11. <animate attributeName="fill" attributeType="CSS" from="lime" to="red" begin="2s" dur="4s" fill="freeze" />
  12. </rect>
  13. 对不起,您的浏览器不支持 SVG.
  14. </svg>
  15. </body>
  16. </html>

会改变颜色的三个矩形:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>会改变颜色的三个矩形</p>
  5. <svg width="500" height="500">
  6. <rect x="10" y="20" width="90" height="60">
  7. <animate id="a1" attributeName="fill" from="red" to="blue" dur="3s" fill="freeze" />
  8. </rect>
  9. <rect x="10" y="120" width="90" height="60">
  10. <animate id="a2" attributeName="fill" from="blue" to="yellow" begin="a1.end" dur="3s" fill="freeze" />
  11. </rect>
  12. <rect x="10" y="220" width="90" height="60">
  13. <animate id="a3" attributeName="fill" from="yellow" to="green" begin="a2.end" dur="3s" fill="freeze" />
  14. </rect>
  15. 对不起,您的浏览器不支持 SVG.
  16. </svg>
  17. </body>
  18. </html>

沿一个运动路径移动的文本:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p><strong>Note:</strong> 沿一个运动路径移动的文本</p>
  5. <svg width="500" height="500">
  6. <g transform="translate(100,100)">
  7. <text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24"> It's SVG!
  8. <animateMotion path="M 0 0 L 100 100" dur="5s" fill="freeze" />
  9. </text>
  10. </g>
  11. 对不起,您的浏览器不支持 SVG.
  12. </svg>
  13. </body>
  14. </html>

沿一个运动路径移动、旋转并缩放的文本:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>沿一个运动路径移动、旋转并缩放的文本</p>
  5. <svg width="600" height="600">
  6. <g transform="translate(100,100)">
  7. <text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24; visibility:hidden"> It's SVG!
  8. <set attributeName="visibility" attributeType="CSS" to="visible" begin="1s" dur="5s" fill="freeze" />
  9. <animateMotion path="M 0 0 L 100 100" begin="1s" dur="5s" fill="freeze" />
  10. <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="1s" dur="5s" fill="freeze" />
  11. <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="1s" dur="5s" fill="freeze" />
  12. </text>
  13. </g>
  14. 对不起,您的浏览器不支持 SVG.
  15. </svg>
  16. </body>
  17. </html>

沿一个运动路径移动、旋转并缩放的文本 + 逐步放大并改变颜色的矩形:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>沿一个运动路径移动、旋转并缩放的文本 + 逐步放大并改变颜色的矩形</p>
  5. <svg width="600" height="600">
  6. <rect id="rec" x="300" y="100" width="300" height="100" style="fill:lime">
  7. <animate attributeName="x" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="0" />
  8. <animate attributeName="y" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="0" />
  9. <animate attributeName="width" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="800" />
  10. <animate attributeName="height" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="300" />
  11. <animate attributeName="fill" attributeType="CSS" from="lime" to="red" begin="2s" dur="4s" fill="freeze" />
  12. </rect>
  13. <g transform="translate(100,100)">
  14. <text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24; visibility:hidden"> It's SVG!
  15. <set attributeName="visibility" attributeType="CSS" to="visible" begin="1s" dur="5s" fill="freeze" />
  16. <animateMotion path="M 0 0 L 100 100" begin="1s" dur="5s" fill="freeze" />
  17. <animate attributeName="fill" attributeType="CSS" from="red" to="blue" begin="1s" dur="5s" fill="freeze" />
  18. <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="1s" dur="5s" fill="freeze" />
  19. <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="1s" dur="5s" fill="freeze" />
  20. </text>
  21. </g>
  22. 对不起,您的浏览器不支持 SVG.
  23. </svg>
  24. </body>
  25. </html>

旋转的椭圆:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p>旋转的椭圆</p>
  5. <svg width="100%" height="300px">
  6. <g id="R1" transform="translate(250 250)">
  7. <ellipse rx="100" ry="0" opacity=".3">
  8. <animateTransform attributeName="transform" type="rotate" dur="7s" from="0" to="360" repeatCount="indefinite" />
  9. <animate attributeName="cx" dur="8s" values="-20; 220; -20" repeatCount="indefinite" />
  10. <animate attributeName="ry" dur="3s" values="10; 60; 10" repeatCount="indefinite" />
  11. </ellipse>
  12. </g>
  13. <use xlink:href="#R1" transform="rotate(72 390 150)" />
  14. <use xlink:href="#R1" transform="rotate(144 390 150)" />
  15. <use xlink:href="#R1" transform="rotate(216 390 150)" />
  16. <use xlink:href="#R1" transform="rotate(288 390 150)" />
  17. </svg>
  18. </body>
  19. </html>