SVG 实例
本章节列出全部 SVG 实例,其中有之前章节里面引用过的,也有很多是新实例。
查看 SVG 文件
目前主流浏览器都支持 SVG,可直接用浏览器打开查看。
查看 SVG 源代码
如需查看 SVG 源代码,请打开这些例子,然后在窗口中右键单击,选择“查看源代码”。
SVG 实例
SVG 形状
SVG 滤镜
feOffset、feFlood、feComposite、feMerge 以及 feMergeNode
SVG 渐变
SVG Misc
向矩形添加 a 标签,这样矩形就可以作为一个超级链接了:
<!DOCTYPE html>
<html>
<body>
<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<a xlink:href="https://cankaoshouce.com" target="_blank">
<rect x="20" y="20" width="250" height="250"
style="fill:blue;stroke:pink;stroke-width:5;opacity:0.9"/>
</a>
</svg>
</body>
</html>
重复用 5 秒时间淡出的矩形:
<!DOCTYPE html>
<html>
<body>
<p>重复用 5 秒时间淡出的矩形</p>
<svg width="400" height="400">
<rect x="20" y="20" width="250" height="250" style="fill:blue">
<animate attributeType="CSS" attributeName="opacity" from="1" to="0" dur="5s" repeatCount="indefinite" />
</rect>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
动态改变矩形的 x、y 以及 width、height 属性来创造出动画效果,并改变矩形的颜色:
<!DOCTYPE html>
<html>
<body>
<p>动态改变矩形的 x、y 以及 width、height 属性来创造出动画效果,并改变矩形的颜色</p>
<svg width="500" height="500">
<rect id="rec" x="300" y="100" width="300" height="100" style="fill:lime">
<animate attributeName="x" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="0" />
<animate attributeName="y" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="0" />
<animate attributeName="width" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="800" />
<animate attributeName="height" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="300" />
<animate attributeName="fill" attributeType="CSS" from="lime" to="red" begin="2s" dur="4s" fill="freeze" />
</rect>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
会改变颜色的三个矩形:
<!DOCTYPE html>
<html>
<body>
<p>会改变颜色的三个矩形</p>
<svg width="500" height="500">
<rect x="10" y="20" width="90" height="60">
<animate id="a1" attributeName="fill" from="red" to="blue" dur="3s" fill="freeze" />
</rect>
<rect x="10" y="120" width="90" height="60">
<animate id="a2" attributeName="fill" from="blue" to="yellow" begin="a1.end" dur="3s" fill="freeze" />
</rect>
<rect x="10" y="220" width="90" height="60">
<animate id="a3" attributeName="fill" from="yellow" to="green" begin="a2.end" dur="3s" fill="freeze" />
</rect>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
沿一个运动路径移动的文本:
<!DOCTYPE html>
<html>
<body>
<p><strong>Note:</strong> 沿一个运动路径移动的文本</p>
<svg width="500" height="500">
<g transform="translate(100,100)">
<text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24"> It's SVG!
<animateMotion path="M 0 0 L 100 100" dur="5s" fill="freeze" />
</text>
</g>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
沿一个运动路径移动、旋转并缩放的文本:
<!DOCTYPE html>
<html>
<body>
<p>沿一个运动路径移动、旋转并缩放的文本</p>
<svg width="600" height="600">
<g transform="translate(100,100)">
<text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24; visibility:hidden"> It's SVG!
<set attributeName="visibility" attributeType="CSS" to="visible" begin="1s" dur="5s" fill="freeze" />
<animateMotion path="M 0 0 L 100 100" begin="1s" dur="5s" fill="freeze" />
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="1s" dur="5s" fill="freeze" />
<animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="1s" dur="5s" fill="freeze" />
</text>
</g>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
沿一个运动路径移动、旋转并缩放的文本 + 逐步放大并改变颜色的矩形:
<!DOCTYPE html>
<html>
<body>
<p>沿一个运动路径移动、旋转并缩放的文本 + 逐步放大并改变颜色的矩形</p>
<svg width="600" height="600">
<rect id="rec" x="300" y="100" width="300" height="100" style="fill:lime">
<animate attributeName="x" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="0" />
<animate attributeName="y" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="0" />
<animate attributeName="width" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="300" to="800" />
<animate attributeName="height" attributeType="XML" begin="0s" dur="6s" fill="freeze" from="100" to="300" />
<animate attributeName="fill" attributeType="CSS" from="lime" to="red" begin="2s" dur="4s" fill="freeze" />
</rect>
<g transform="translate(100,100)">
<text id="TextElement" x="0" y="0" style="font-family:Verdana;font-size:24; visibility:hidden"> It's SVG!
<set attributeName="visibility" attributeType="CSS" to="visible" begin="1s" dur="5s" fill="freeze" />
<animateMotion path="M 0 0 L 100 100" begin="1s" dur="5s" fill="freeze" />
<animate attributeName="fill" attributeType="CSS" from="red" to="blue" begin="1s" dur="5s" fill="freeze" />
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="1s" dur="5s" fill="freeze" />
<animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="1s" dur="5s" fill="freeze" />
</text>
</g>
对不起,您的浏览器不支持 SVG.
</svg>
</body>
</html>
旋转的椭圆:
<!DOCTYPE html>
<html>
<body>
<p>旋转的椭圆</p>
<svg width="100%" height="300px">
<g id="R1" transform="translate(250 250)">
<ellipse rx="100" ry="0" opacity=".3">
<animateTransform attributeName="transform" type="rotate" dur="7s" from="0" to="360" repeatCount="indefinite" />
<animate attributeName="cx" dur="8s" values="-20; 220; -20" repeatCount="indefinite" />
<animate attributeName="ry" dur="3s" values="10; 60; 10" repeatCount="indefinite" />
</ellipse>
</g>
<use xlink:href="#R1" transform="rotate(72 390 150)" />
<use xlink:href="#R1" transform="rotate(144 390 150)" />
<use xlink:href="#R1" transform="rotate(216 390 150)" />
<use xlink:href="#R1" transform="rotate(288 390 150)" />
</svg>
</body>
</html>