如何制作svg动态图

原文链接:http://www.webhek.com/post/how-svg-line-animation-works.html

相信大家都见到过这样神奇的技术:一副线条构成的画能自动画出自己。非常的酷。Jake Archibald是这种SVG技术的首创者,并且写了一篇非常好的文章来描述它是如何实现的。Brian Suda也在24 Ways网站上讨论过它。 Polygon使用它在一篇设计方面的文章里创造出了非常神奇的效果。Codrops也做出了一些非常漂亮的例子。

其实我没有什么好增补的,只是想把这种技术说的更明白些,所以,在这里我要用我的方式把这种技术再讲解一遍。

1. 你有一个SVG图形

2. 这个图形必须要有一个线条(stroke)属性

3. 线条可以是虚线

我们可以用Illustrator制作,也可以用编程实现。我们用CSS来设置这些路径的样式(假定我们这里是inline SVG,或通过一个),把它们变成虚线形式。.path {  stroke-dasharray: 20;}

这是让虚线里的每个小线段长度为20px。

4. 可以让虚线小段的长度变得更长…..path {  stroke-dasharray: 100;}

5. 我们还可以给我们的线条设置”offset”偏移量,这样会导致虚线里的小线段的位置发生移动。

当我们动态设置图形中线条的“offset”值时,可以看到这个效果:

可以这样简单的实现:.path {  stroke-dasharray: 100;  animation: dash 5s linear;}@keyframes dash {  to {    stroke-dashoffset: 1000;  }}

6. 想象,当虚线的小线条足够长,超过图形的整个线条长度时

没有什么变化,整个图像看起来完全不是虚线。你只需要将stroke-dasharray属性设置的足够长,超过整个线条的长度。

7. 现在给线条设置偏移量,让它不再覆盖整个图形。

这样你就看不见图形了。

8. 现在动态的慢慢将线条的偏移量设置回归到0

如果通过CSS,你需要将animation属性设置成forwards,这样整个动画就会停止在它的最终状态。.path {  stroke-dasharray: 1000;  stroke-dashoffset: 1000;  animation: dash 5s linear forwards;}@keyframes dash {  to {    stroke-dashoffset: 0;  }}

Tada!

为什么要用JavaScript?

大部分你看到的SVG线条动画都使用了JavaScript。这是因为在现实情况中你很难知道线条有多长。我们这里设置的是1000,是因为它碰巧是1000。

用JavaScript获取长度值的写法是这样的:var path = document.querySelector('.path');var length = path.getTotalLength();

然后你就可以随便使用这个值了。文本顶部链接的那些文章讲的都比本文透彻,你最好还是参考一下那些文章。我只想简单的讲一下这种技术方法,希望它能给你一些启示。css:

.path {

stroke-dasharray: 1000;

stroke-dashoffset: 1000;

animation: dash 5s linear forwards;

animation-delay: 1s;

-webkit-animation: dash 5s linear forwards;

}

@keyframes dash {

to {

stroke-dashoffset: 0;

}

}

html:

css svg做动图,如何制作svg动态图相关推荐

  1. 如何将图片序列化_PS如何将图片制作成gif动态图 ps制作gif动态图教程

    想要制作gif动态图片,为何不试试万能的PS呢!使用PS可以帮助用户快速轻松的制作gif动图,操作简单又方便.那么如何利用PS快速将图片做成gif动态图,其实方法是很简单,制作这种gif动图其实就是把 ...

  2. 如何制作GIF动态图,表情包怎么做

    相信每个朋友都经常使用gif动图,是不是也很好奇gif是如何制作出来的呢?其实很简单,只要第三方工具支持就可以,我们每个人随时随地都可以完成自己想要的gif,特别是经常使用GIF的朋友对GIF应该会有 ...

  3. 电脑怎么制作GIF动态图,如何做表情包

    GIF已经成为咱们日常聊天中必备的啦!不时就会有人问,怎么自己制作GIF表情包,因为平时使用的都是工具中自带的,所以很多人还是比较喜欢自己制作GIF的,那电脑怎么制作GIF动态图,如何做表情包呢? 1 ...

  4. Python制作gif动态图

    想用C#做gif动态图,找了半天,没有能直接生成的方法,都需要用额外的dll文件.但是用Python倒是可以很简单的实现. 参考https://blog.csdn.net/qq_42554007/ar ...

  5. 图像眼睛怎么眨眼c语言,可牛影像怎么制作眨眼动态图?

    可牛影像是一款十分常用的图片处理软件,在这里你可以整理任何想要的图片,修改任何你想要的图片,比如制作一些很好玩的小动图,在聊天时候发一些动态图非常生动可爱.今天小编就给大家讲讲用可牛影像怎么制作眨眼动 ...

  6. 图像眼睛怎么眨眼c语言,可牛影像怎么制作眨眼动态图 可牛影像制作眨眼动态图教程...

    在聊天时候发一些动态图非常生动可爱.今天小编就给大家讲讲用可牛影像怎么制作眨眼动态图,让你可以轻松制作出眨眼动图,当表情包来使用. 类别:图像制作   大小:12.57M    语言:简体中文 评分: ...

  7. 怎么制作GIF动态图?这几种制作方法分分钟解决

    怎么制作出GIF动态图呢?在现代通讯工具中,表情包已经成为了人们日常交流中必不可少的一部分.有时候,我们会发现市面上的表情包不太符合自己的需求,这时候我们可以自己动手制作自己的表情包.制作GIF动图是 ...

  8. MATLAB 制作gif动态图

    MATLAB 制作gif动态图的基本思想就是,将一张张的静态图组合成一张能动的gif图片,并保存到相应的位置. 那么,要想制作一张动态图,首先要有若干个静态图,并且他们的索引值是连续的.下面先说一下m ...

  9. 如何用计算机制作动态图,电脑怎么制作gif动态图

    原标题:电脑怎么制作gif动态图 QQ和空间里我们经常能看到一些好玩的动态图,那么这些动态图究竟是如何制作的呢?其实这些GIF动态图制作起来不是特别困难,有一款迅捷GIF制作工具就能够轻松驾驭了,今天 ...

  10. javacv开发详解之19:如何使用批量的多张图片制作apng动态图,再也不用担心不会制作动态图了

    javacv实战专栏目录: JavaCV实战专栏文章目录(JavaCV速查手册) 前言 前面写过视频.桌面屏幕录制apng和gif动态图,虽然已经满足大部分情况,但是没考虑到现在很多动态图都是使用多张 ...

最新文章

  1. 性能优化技巧 - 内存关联计算
  2. c++面试题【转】 面经
  3. [Snoi2017]炸弹
  4. 飞思卡尔与PowerPC介绍
  5. scss与sass介绍
  6. 双十一淘宝、京东服务器瘫痪大揭秘 感悟
  7. BCNet实现PLC数据采集解决方案,BCNet
  8. maya python 游戏与影视编程指南_Maya Python游戏与影视编程指南
  9. 计算机系统概论(原书第2版)部分课后习题答案(五六七章)
  10. Channel Access Protocal——EPICS Base-3.16版CA协议 - 字节序与数据类型
  11. Java里面bean是什么意思_bean是什么意思?javaBean是什么?
  12. 网络号和主机号具体计算原理-ipv4篇
  13. 体脂秤方案——体脂秤的原理是什么?
  14. 2019互联网校招薪资表: BAT、华为还没有TMD高
  15. IntelliJ IDEA2017 激活方法
  16. 图解Linux中EXT4与EXT3的区别
  17. 解锁京东云底层技术密码:京东四大数智供应链技术亮相
  18. 数据库启动失败以及在cmd(命令窗口)中启动失败原因分析和解决
  19. JAVA Web学习笔记15 mybatis之查看详情 条件查询
  20. 还在背3Dmax快捷键大全?看看这缩略版的,最常用还好记

热门文章

  1. latex调整caption字体大小
  2. 想知道raw转换jpg软件怎么用?教你raw转换的方法
  3. 10月业务安全月报 | 美国将奇虎360和知道创宇列入黑名单;丰田泄露30万用户信息;苹果曝严重漏洞
  4. 奇虎360java面试_2016奇虎360JAVA研发工程师内推笔试题
  5. Windows 10 笔记本如何使用外接显示器
  6. AN 非空检测以及影片剪辑元件调用内部元件
  7. Python图像处理库PIL的基本概念介绍
  8. 酷狗音乐flac转换成mp3格式
  9. 中国土地市场销售规模状况与投资战略研究报告2022版
  10. java mysql sqlhelper_Java访问MySQL数据库的SqlHelper类以及测试程序