博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVG动画
阅读量:7207 次
发布时间:2019-06-29

本文共 2920 字,大约阅读时间需要 9 分钟。

动画原理

SVG动画就是元素的属性值关于时间的变化。 如下图来说元素的某个属性值的起始值from到结束值to在一个时间段duration根据时间函数timing-function计算出每一帧frame的插值interpolation作为变换的行为。

PSSVG动画是帧动画在SVG里也就是每秒设置多少个value值。

SVG动画语法

SVG动画是基于SMIL语言的全称是同步多媒体集成语言。

SVG动画使用

SVG元素使用动画有两种方式

1. 被xlink:href引用

2. 包含在目标元素里

<animate>标签

该标签用于基本动画。

参数 描述
attributeName 要变化属性名称
1.可以是元素直接暴露的属性
2.可以是CSS属性
attributeType  用来表明attributeName属性值的类型
支持三个固定参数CSS/XML/auto默认值auto。
例如x、 y以及transform就属于XML, opacity就属于CSS。
from 起始值
起始值与元素的默认值是一样的该参数可省略。
to 结束值
by 相对from的变化值
PS当有to值时该值无效。
values 动画的多个关键值用分号分隔。
dur 持续时间
取值常规时间值 | "indefinite"
repeatCount 动画执行次数
取值合法数值或者“indefinite”
fill 动画间隙的填充方式
取值freeze | remove默认值。
remove表示动画结束直接回到开始的地方。
freeze表示动画结束后保持了动画结束之后的状态。
calcMode 控制动画的快慢
取值discrete | linear默认值 | paced | spline.
中文意思分别是“离散”|“线性”|“踏步”|“样条”。
另外该参数要结合keyTimes、keySplines使用数值的是对应values的
所以如果没有设置values和keyTime或keySplines是没有效果的。
begin 动画开始的时机取值
time-value | offset-value | syncbase-value | event-value | repeat-value |
accessKey-value | media-marker-value | wallclock-sync-value | "indefinite"
1. time-value动画开始时间可传多个值分号分隔。
2. syncbase-value[元素的id].begin/end +/- 时间值offset-value
    某个动画效果开始或结束触发此动画的可加上偏移量。
3. event-value事件触发
4. repeat-value指某animation重复多少次开始。
    语法为[元素的id].repeat(整数) +/- 时间值
end end与begin除了名字和字面含义不一样其值的种类与表意都是一模一样的。

PS只列出常用参数其他请查阅参考文献。

例子

效果

begin例子

click red go

效果

注意

1. 多个animate是可以叠加的。

<animateTransform>标签

该标签用于变换动画animateTransform也有animate的参数额外的是type。

参数 描述
type 变换的类型取值translate、scale、rotate、skewX、skewY

例子

效果

注意

1. animateTransform也是可以叠加的不过要加上additive="sum"否则后面的无效了。

<animateMotion>标签

这个标签让元素在路径Path上滑动。

例子

效果

注意

1. 设置rotate="auto"可以让元素根据路径的切线方向做旋转。

脚本动画

SVG的requestAnimationFrame函数可以让我们用js来做动画浏览器对requestAnimationFrame调用的频率是每秒60次逐帧动画。

例子

PS效果就是正方形旋转360°后停止。

 

参考视频

1. 

 

参考文献

1. 

2. 

 

本文为原创文章转载请保留原出处方便溯源如有错误地方谢谢指正。

本文转自 海角在眼前 博客园博客原文链接 http://www.cnblogs.com/lovesong/p/6011328.html  如需转载请自行联系原作者

你可能感兴趣的文章
警惕“***性社工”现象
查看>>
Exchange 2013与OWA13集成
查看>>
有话请直说
查看>>
虚机不能启动的特例思考
查看>>
OSPF概述
查看>>
自动化部署操作系统-Kickstart+PXE自动部署
查看>>
Eclipse europa 更新时 Error retrieving "feature.xml". [error in opening zip file]的解决
查看>>
Hyper-V损坏数据恢复报告
查看>>
《从零开始学Swift》学习笔记(Day 16)——字典集合
查看>>
[转]配置nginx+apache 其中动态由apache处理,静态由nginx处理
查看>>
在Word中如何实现"后退"?
查看>>
简明 Vim 练级攻略 | 酷壳 - CoolShell.cn
查看>>
养成逻辑的习惯
查看>>
jQuery attributes(上)
查看>>
ISO8583报文协议(转)
查看>>
Android文本框实现搜索和清空效果
查看>>
Logic-算法-XX部队XX侦察队员
查看>>
海量数据(数据量比较大时)的处理分析
查看>>
printf 规定数据输出方式
查看>>
Facebook Graph API(2)--读取数据之picture
查看>>