HTML学习笔记(五) SVG 下

简介: HTML学习笔记(五) SVG

正文


3、功能标签


除了图形标签,在容器中还能使用一些功能标签实现特定功能

(1)展示

使用 <use> 标签可以复制并展示一个图形,常用的属性如下:

  • href:指定要复制的节点
  • x:左上角 X 轴坐标
  • y:左上角 Y 轴坐标
<svg id="graph" width="300px" height="300px">
    <circle id="myCircle" cx="50" cy="50" r="50" />
    <use href="#myCircle" x="200" y="200" />
</svg>

(2)组合

使用 <g> 标签可以将多个图形组合在一起

<svg id="graph" width="300px" height="300px">
    <g id="cross">
        <line x1="20" y1="20" x2="80" y2="80" stroke="black" />
        <line x1="80" y1="20" x2="20" y2="80" stroke="black" />
    </g>
    <use href="#cross" x="200" y="200" />
</svg>


(3)定义

使用 <defs> 标签可以自定义一个图形,这个图形不会被显示,但能被引用

<svg id="graph" width="300px" height="300px">
    <defs>
        <g id="hook">
            <line x1="10" y1="50" x2="40" y2="90" stroke="black" />
            <line x1="40" y1="90" x2="90" y2="10" stroke="black" />
        </g>
    </defs>
    <use href="#hook" x="200" y="200" />
</svg>


(4)模式

使用 <pattern> 标签可以自定义一个图形,这个图形不会被显示,但能被引用填充一个区域,常用的属性如下:


x:边界框左上角 X 轴坐标,默认为 0

y:边界框左上角 Y 轴坐标,默认为 0

width  :边界框宽度,默认为 0

height:边界框高度,默认为 0

patternUnits:定义图案效果区域的单位,可选值如下:


  • userSpaceOnUse:表示使用当前用户坐标系中的值
  • objectBoundingBox:表示引用边界框的分数或百分比的值

<svg id="graph" width="300px" height="300px">
    <pattern id="dot" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
        <circle cx="10" cy="10" r="5" />
    </pattern>
    <rect x="100" y="100" width="100" height="100" fill="url(#dot)" />
</svg>

(5)图片

使用 <image> 标签可以插入图片,使用 xlink:href 属性指定图片来源

<svg id="graph" width="300px" height="300px">
    <image xlink:href="image.jpg" width="50%" height="50%" />
</svg>


(6)动画

使用 <animate> 标签可以产生动画,常用的属性如下:

  • attributeName:产生动画的属性名称
  • from:属性的初始值
  • to    :属性的结束值
  • dur  :动画的持续时间
  • repeatCount:动画的循环模式
<svg id="graph" width="300px" height="300px">
    <ellipse cx="150" cy="150" rx="100" ry="50">
        <animate attributeName="rx" from="100" to="300" dur="2s" repeatCount="indefinite" />
        <animate attributeName="ry" from="50" to="300" dur="2s" repeatCount="indefinite" />
    </ellipse>
</svg>

目录
相关文章
|
6月前
|
XML 编解码 前端开发
编程笔记 html5&css&js 033 HTML SVG
编程笔记 html5&css&js 033 HTML SVG
|
6月前
|
存储 移动开发 前端开发
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
HTML新特性【HTML5内联SVG、SVG_矩形、SVG 与 Canvas两者间的区别 、HTML5_MathML 】(三)-全面详解(学习总结---从入门到深化)
86 0
|
2月前
|
XML 移动开发 前端开发
HTML5 SVG
SVG(可缩放矢量图形)是HTML5中的一种XML标记语言,用于描述二维图形。它具有可缩放性,能无缝集成CSS和JavaScript,适合网络应用。SVG支持多种基本图形元素(如矩形、圆形、路径等),并通过属性控制外观。此外,SVG还支持变换、文本渲染及动画效果,文件大小通常较小且不失真,但复杂图形可能导致管理困难,部分旧版浏览器可能存在兼容性问题。总之,SVG是现代Web开发中创建动态和响应式界面的强大工具。
|
2月前
|
XML 移动开发 前端开发
HTML5 SVG和canvas的性能探讨
HTML5 中的 SVG(可缩放矢量图形)和 Canvas(画布)分别用于网页图形绘制。SVG 基于矢量图形,使用 XML 描述,适合静态或少量动态内容(如图标、图表),易于编辑且保持高分辨率;Canvas 则基于位图,通过 JavaScript 绘制,更适合快速更新大量图形的场景(如游戏、动态动画),但在复杂图形计算时可能遇到性能瓶颈。总体而言,SVG 适用于静态和少量动态内容,而 Canvas 更适合高频率更新和性能要求高的场景。
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
6月前
|
XML 编解码 前端开发
HTML SVG
HTML SVG
59 0
|
3月前
|
移动开发 前端开发 JavaScript
|
5月前
|
移动开发 前端开发 JavaScript
浏览器端图表渲染技术SVG, VML HTML Canvas
浏览器端图表渲染技术SVG, VML HTML Canvas
39 0
|
6月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
64 0
webgl学习笔记3_javascript的HTML DOM
|
6月前
|
前端开发 JavaScript API
【HTML】SVG实现炫酷的描边动画
今天闲来无事,看到Antfu大佬的个性签名,觉得还是非常炫酷的,于是也想要搞一个自己的个性签名用来装饰自己的门面,不过由于手写的签名太丑了,遂放弃。于是尝试理解原理,深入研究此等密法,终于小有所成,发现原来是描边动画,于是记载如下,方便日后借鉴。
92 3