git: https://github.com/rainnaZR/svg-animations/tree/master/src/pages/step2/letter.change

说明

这个页面实现了两个动画。

字母切换

字母切换的方式通过修改 stroke-dasharray 的值来实现动画。是从无到有的动画。

css 代码如下:

.txt{
stroke:#FFEB3B;
stroke-width:2px;
-webkit-animation:animate1 3s ease-in-out forwards;
}
@keyframes animate1{
0%{
stroke-dasharray:0% 30%;
}
80%{
stroke-dasharray:50% 0%;
fill:#E91E63;
}
100%{
stroke-dasharray:50% 0%;
fill:#FFEB3B;
}
}

html 代码如下:

<svg version="1.2" xml:space="default">
<symbol id="letter">
<text x="38%" y="50%">A</text>
</symbol> <g>
<use xlink:href="#letter" class="txt"></use>
</g>
</svg>

数字切换

数字切换的方式是通过修改 path 路径来实现动画。是直接修改 path 的路径。

css 代码如下:

.path{
-webkit-animation:animation2 10s ease-in-out infinite;
}
@keyframes animation2 {
0%,
7% {
d: path('M0,100 L50,100 L50,50 L50,0 L0,0 L0,50 L50,50')
}
11%,
17% {
d: path('M0,0 L50,0 L50,100 L0,100 L0,0 L0,50 L50,50')
}
21%,
27% {
d: path('M0,0 L50,0 L50,20 L50,40 L50,60 L50,80 L50,100')
}
31%,
37% {
d: path('M50,0 L0,0 L0,50 L0,100 L50,100, L50,50 L0,50')
}
41%,
47% {
d: path('M50,0 L0,0 L0,50 L25,50 L50,50 L50,100 L0,100')
}
51%,
57% {
d: path('M0,0 L0,50 L50,50 L50,0 L50,35 L50,70 L50,100')
}
61%,
67% {
d: path('M0,0 L50,0 L50,100 L0,100 L50,100 L50,50 L0,50')
}
71%,
77% {
d: path('M0,0 L50,0 L50,50 L25,50 L0,50 L0,100 L50,100')
}
81%,
87% {
d: path('M50,0 L50,15 L50,30 L50,45 L50,60 L50,75 L50,100')
}
91%,
96% {
d: path('M0,0 L50,0 L50,50 L50,100 L0,100 L0,25 L0,0')
}
}

html 代码如下:

<svg version="1.2" xml:space="default">
<path class="path" fill="none" stroke="#FFEB3B" stroke-width="2px" d="M0,0 L50,0 L50,50 L50,100 L0,100 L0,25 L0,0"></path>
</svg>

参考资料: http://www.alloyteam.com/2017/02/the-beauty-of-the-lines-break-lines-svg-animation/

SVG动画实践篇-字母切换的更多相关文章

  1. SVG动画实践篇-模拟音量高低效果

    git 地址:https://github.com/rainnaZR/svg-animations/tree/master/src/demo/step2/volumn 说明 这个动画的效果就是多个线条 ...

  2. SVG动画实践篇-无中生有的线条动画

    git: https://github.com/rainnaZR/svg-animations/tree/master/src/pages/step2/path 说明 这个动画实现的是线条动画,主要用 ...

  3. SVG动画实践篇-音量变化效果

    git 地址:https://github.com/rainnaZR/svg-animations/tree/master/src/pages/step2/volumn 说明 这个动画的效果就是多个线 ...

  4. SVG动画

    动画原理 SVG动画,就是元素的属性值关于时间的变化. 如下图来说,元素的某个属性值的起始值(from)到结束值(to)在一个时间段(duration)根据时间函数(timing-function)计 ...

  5. 推荐8个实现 SVG 动画的 JavaScript 库

    SVG 是一种分辨率无关的图形(矢量图形).这意味着它在任何类型的屏幕都不会遭受任何质量损失.除此之外,你可以让 SVG 灵活现一些动画效果.这篇文章就给大家推荐8个实现 SVG 动画的 JavaSc ...

  6. 使用 SVG 动画实现弹性的页面元素效果

    Codrops 分享了一些给SVG元素加上弹性动画的灵感.实现的思路是把一个SVG元素整合成一个组件,然后从一个路径弹性动画到另一个.这种效果可以应用到像菜单,按钮或其它元素,使得交互更有趣,看起更原 ...

  7. Walkway.js – 用线条制作简约的 SVG 动画

    Walkway.js 是一个使用线条和路径元素组成 SVG 动画图像的简单方法.只需根据提供的配置对象创建一个新的 Walkway 实例就可以了.这种效果特别适合那些崇尚简约设计风格的网页.目前, W ...

  8. 带给你灵感:30个超棒的 SVG 动画展示【上篇】

    前端开发人员和设计师一般使用 CSS 来创建 HTML 元素动画.然而,由于 HTML 在创建图案,形状,和其他方面的局限性,它们自然的转向了 SVG,它提供了更多更有趣的能力.借助SVG,我们有更多 ...

  9. 带给你灵感:30个超棒的 SVG 动画展示【下篇】

    前端开发人员和设计师一般使用 CSS 来创建 HTML 元素动画.然而,由于 HTML 在创建图案,形状,和其他方面的局限性,它们自然的转向了 SVG,它提供了更多更有趣的能力.借助 SVG,我们有更 ...

随机推荐

  1. 二叉排序树:HDU3791-二叉搜索树(用指针建立二叉排序树)

    二叉搜索树 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descr ...

  2. BZOJ 3326: [Scoi2013]数数

    数位DP,然而式子真的复杂 #include<cstdio> #include<algorithm> #include<cstring> using namespa ...

  3. mantisbt邮件配置

    PHP.INI里面 [mail function]; For Win32 only.#SMTP = 192.168.0.249SMTP = smtp.163.comsmtp_port = 25 ; F ...

  4. FCKeditor自定义编辑区CSS样式

    在网站后台使用FCKeditor编辑器的时候,见到的效果可能并不完全是”所见即所得”的,因为如果在FCKeditor编辑区中使用了前台样式表中的样式,在编辑区中并不能把这些样式显示出来.解决这个问题的 ...

  5. 图解spring事务管理的实现

  6. PostgreSQL order by 排序问题

    默认的排序为order by 字段名, 如果该字段不允许为空的情况下可以这样操作, 但是当字段允许为null时,order by 字段名的方式会导致: 升序时(asc): 会从最小值开始升序,最后面接 ...

  7. Leetcode 421.数组中两数的最大异或值

    数组中两数的最大异或值 给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231 . 找到 ai 和aj 最大的异或 (XOR) 运算结果,其中0 ...

  8. Ruby 符号【转】

    Ruby的符号足以让很多初学者迷惑上一段时间,看过本章节后,或许会解开你心中的疑惑. 在Ruby中,一个符号是就是一个Symbol类的实例,它的语法是在通常的变量名前加一个冒号,如 :my_sy Ru ...

  9. pip安装超时,更换国内镜像源安装

    pip安装超时问题 pip install --index 源地址 安装包 常用镜像源地址: http://pypi.douban.com/ 豆瓣 http://pypi.mirrors.ustc.e ...

  10. Set容器——HashSet及常用API

    Set容器特点: ①   Set容器是一个不包含重复元素的Collection,并且最多包含一个null元素,它和List容器相反,Set容器不能保证其元素的顺序; ②   最常用的两个Set接口的实 ...