在制作Web动画效果时,使用SVG制作动画是我们应该掌握的技能之一。本书详细介绍了 SVG的基础知识、如何使用SVG制作动画、制作SVG动画的工具及相关的JavaScript库。除些之外,本书也探讨了SVG还能做的一些十分有趣的事情,比如数据可视化、可伸缩的矢量图、响应式设计等。Sarah为广大读者提供了一本非常优秀的书籍,可帮助读者更系统地掌握SVG和 SVG制作动画相关的技术知识。如果你想掌握这项技术,那么本书是值得你花时间去阅读和研究的一本书。
Sarah Drasner是一获奖的布道者、顾问和技术人员。Sarah也是Web动画工作室的联合创始人,拥有Val Head。她被授予高级SVG动画前端之师之称,并曾担任Truli(Zillow)的UX设计师和经理。Sarah赢得一系列奖项。作为一名Web开发人员和设计师,她已经有了15年之久的工作经验,她还曾担任过插画师和大学教授,并在Santorini教过一个Byzantine的图标画师。
译者简介
大漠
W3CPlus创始人,目前就职于淘宝。对HTML5、CSS3和CSS处理器等前端脚本语言有非常深入的认识和丰富的实践经验,尤其专注对CSS3和动画的研究,是国内早研究和使用CSS3和CSS处理器技术的一批人。现在主要在探讨学习JavaScript、React和Vue相关技术知识。CSS3、CSS处理器和Drupal中国布道者。2014年出版《图解CSS3:核心技术与案例实战》。
姜天意
昵称99,阿里巴巴盒马鲜生前端开发专家,目前主要负责盒马数据可视化相关产品的研发。
田淮仁
腾讯前端开发,PWA 和 httplive 开源项目作者。热爱分享,有自己的博客:villainhr.com 和微信公众号:前端小吉米。对 H5 音视频技术,直播和 P2P 有一定的技术积累。
欧阳湘粤
大四准毕业码农,曾在百度和腾讯实习,对新技术有着强烈的热爱,喜欢折腾新事物,希望未来能够继续学到更多有意思的东西,Long May The Sunshine。
小春
摩拜前端负责人,前滴滴公共前端负责人。担任过 GIAC 全球互联网架构大会 - 前端出品人;写过 3 本前端书籍,近一本:国内第1本 Vue.js 书籍《Vue.js指南》;乐于分享和学习交流,参加过 vueconf、SDCC 2016 中国软件开发者大会等。
很少有人像 Sarah那样热衷于 Web动画,她的新书就是一个宝库。如果你想在 Web上使用 SVG动画,那么必须阅读这本书。
——Jack Doyle,GreenSock
Sarah Drasner写的动画总是令人愉悦,流畅而优雅。她不仅是一位优秀的动画设计师,她还解释了为什么以及如何使用这些工具来创造你想要的动画。她通过简单明了的方式指导读者理解重要的概念,并为读者推荐能用于跨浏览器制作动效的库。即使你对 SVG和动画原理有所了解,也不会后悔拥有这本书,因为书中的内容能让你变得更强大。
——Chris Lilley,SVG之父
SVG动画对于任何使用 SVG的人来说都是必须掌握的。Sarah Drasner把她所知道的动画知识点整合在一起,向读者展示了如何在动画中做出好的选择,以及如何用专业的技术来完成动画。
——Val Head,设计界知名动画设计师
Sarah Drasner既是一位令人难以置信的艺术家,也是一位务实、注重细节的 Web开发者。 SVG动画为 Web上的矢量动画提供了实用的解决方案,并且通过一系列的工具帮助你不让技术限制你的创造力。
——Amelia Bellamy-Royds,SVG Colors, Patterns & Gradient、 SVG Essentials (第二版 )、SVG Text Layout和 Using SVG with CSS3 and HTML5的作者
序. ..xiv
前言xvi
第 1章 剖析 SVG. ....................... 1
SVG DOM语法 ............................ 2
viewBox 和 preserveAspectRatio .. 2
绘制图形 ....................................... 5
响应式 SVG、组和绘制路径 ........ 6
SVG 的导出、建议及优化 ............ 9
减少路径点 ................................. 11
优化工具 ..................................... 12
第 2章 使用 CSS制作 SVG动画...14
用 SVG做动画............................ 16
使用 SVG绘图的优势 ................ 18
顺畅的动画体验 .......................... 20
第 3章 CSS.动画和手绘 SVG.Sprite. .....................................21
使用 steps()和 SVG Sprite制作关键帧动画 ....................... 21
在 Illustrator中使用模板绘制 ..... 24
在 SVG编辑器或图纸中逐帧绘制并且使用 Gruntiocon生成 Sprite .......................... 26
用简易代码模拟复杂运动 ........... 26
简单重复行走 ............................. 27
第 4章 创建响应式.SVG.Sprite. ... 32
用于响应式的 SVG Sprite图和 CSS ................................... 33
分组和导出 ................................. 35
viewBox的技巧 .......................... 36
响应式动画 ................................. 37
第 5章 不使用任何额外库来创建 UI/UX动画............................. 39
用户体验模式中的上下文切换 ... 39
变形 ..................................... 41
展现 ..................................... 41
隔离 ..................................... 42
样式 ..................................... 43
预期提示 ............................. 45
交互 ..................................... 46
节约空间 ............................. 47
总结 .... 48
变换的图标.......................... 48
第 6章 动态数据可视化............... 55
为什么要在数据可视化中使用动画 .................................... 56
使用 CSS动画的 D3示例 ........... 56
使用 CSS动画的 Chartist示例 ... 59
用 D3 来做动画........................... 61
链式和重复.......................... 64
第 7章 Web动画技术大比拼........ 65
原生动画 ..................................... 65
CSS/Sass/SCSS.................... 65
requestAnimationFrame() .... 67
canvas .................................. 67
Web 动画 API ...................... 68
第三方框架 ................................. 68
GreenSock(GSAP) ............ 68
mo.js .................................... 69
Bodymovin’ ........................ 70
不推荐使用 ................................. 70
SMIL ................................... 70
Velocity.js ............................ 70
Snap.svg .............................. 71
基于 React的动画工作流 ........... 71
React-Motion ....................... 72
在 React中使用 GSAP ........ 73
在 React中使用 canvas ....... 73
在 React中使用 CSS ........... 73
总结 .... 74
第 8章 用 GreenSock做动画...... 75
GreenSock的基本语法 ............... 76
TweenMax/TweenLite .......... 76
.to/.from/.fromTo ................. 76
Staggering ........................... 77
element ................................ 79
Duration .............................. 79
delay .................................... 79
动画的属性 ................................. 79
easing .................................. 81
第 9章 GreenSock中的时间轴. ... 83
一个简单的时间轴 ...................... 83
相对标签 ..................................... 85
主时间轴和所嵌套的场景 ........... 89
代码的逻辑组织 .................. 90
循环 ..................................... 92
暂停和暂停事件 .................. 94
其他关于时间轴的方法 ....... 95
第 10章 MorphSVG.和路径动画.. 98
MorphSVG .................................. 98
findShapeIndex() ................. 99
路径动画 ................................... 101
第 11章 交错效果、Tweening.HSL和 SplitText的文本动画......106
交错的动画 ............................... 106
HSL颜色渐变动画 ................... 110
文字切分 ................................... 114
第 12章 DrawSVG和 Draggable...................................... 117
Draggable.................................. 117
drag类型 ........................... 119
hitTest() ............................. 119
用 Draggable来控制时间轴 ...................................... 120
DrawSVG .................................. 122
第 13章 mo.js. .......................125
mo.js基础介绍 .......................... 125
图形 .. 125
图形的运动 ............................... 128
链式调用 ........................... 130
旋涡动画 ........................... 131
爆炸式的效果 .................... 133
时间轴控制工具 ................ 134
补间动画 ........................... 135
路径函数 ........................... 136
mo.js提供的辅助工具 .............. 137
第 14章 React-Motion...........140
................................ 141
................. 146
第 15章 动“不可动者”:通过改变属性使用原生 JavaScript实现动画....150
requestAnimationFrame() .......... 150
GreenSock的 AttrPlugin ........... 155
实际应用: viewBox动画 ......... 158
另一个演示 :一个有引导作用的信息图 .................... 164
第 16章 响应式动画..................165
快速响应的技巧 ........................ 165
GreenSock和响应式 SVG ......... 165
不使用 GreenSock实现响应式 SVG ................................. 169
通过更新 viewBox实现响应式 . 170
具有多个 SVG和媒体查询的响应式 ................................ 173
花更少的精力在移动端 ..... 176
有一个计划........................ 176
第 17章 组件库的设计、原型化和动画原理...............................177
动画设计方面 ........................... 177
学会勾勒实际运动中的细节 ..................................... 178
合理控制动画的使用 ......... 179
拥有特色的设计主见 ................................................. 180
提升开发水平 .................... 181
设计原型 ................................... 182
逐步分割动画细节 ............ 182
工具 ................................... 184
杀死汝爱 ........................... 186
设计和编码的工作流程 ..... 187
制作动画组件库 ........................ 187
权衡动画开发的优先级 ..... 190
时间就是金钱 .................... 191
其他方面的限制 ................ 193
索引.......................................194
译者序
众所周知,SVG(可缩放矢量图)对于 Web而言并不是一个全新的课题,只不过近些年 SVG在 Web页面或者 Web应用程序中使用的频率越来越高。这次非常荣幸能和社区的小伙伴一起参与翻译 Sarah的著作。
SVG自发明以来沉寂了非常长的一段时间,由于浏览器厂商对 SVG技术支持不够强大,所以在 Web中的使用机会并不多,而且其发展也是曲折的。不过值得庆幸的是, SVG以它优秀的兼容性、可适配性在开源社区重新拥有了重要的地位,而且近一两年来,使用 SVG的场景也越来越多。
相对而言,SVG具有如下一些独特的优点。
数据可视化:真实的数据直观地表达了人们想要表达的想法,并且易于复杂思想的交流和展现,而 SVG对于数据可视化的展示来说具有一定的优势和可扩展性。
响应式:对于设备品类繁多的今天,如果要让一张图片能很好地兼容各种设备平台,那么 SVG是最佳选择之一。因为 SVG是矢量图,其具有独特的可伸缩性,能很好地适应各种屏幕尺寸的设备。
性能表现:如果在 Web应用或 Web页面中正确使用 SVG,可以减少网站加载的资源,特别是在响应式 Web应用中,这个特性显得更为显著。
可操作的 DOM结构:对于开发者而言, SVG还有另一个有吸引力的特性,那就是它类似于 HTML,具有可操作的 DOM。这意味着用户可以使用代码直接实现想要的矢量图效果,而且还能为屏幕阅读器提供更多的信息,并且可以很好地通过给 DOM添加适合的动画,让 SVG炫动起来。
本书由始至终都贯穿着 SVG的相关知识。我们将讨论 SVG DOM的基础知识,它结构简单,能让人感觉代码浅显易懂。还将讨论 SVG性能方面的知识,将学到如何精简 SVG文件的体积和结构,借此避免网站性能由于 SVG的原因大打折扣。必不可少的,我们还会讨论如何通过 CSS 和 JavaScript 制作 SVG 动画,来完成优美且有趣的动画效
这本书的叙事风格非常独特,它没有采用那种刻板的说教式口吻,反而像一位经验丰富的前辈在手把手地带着你探索前沿领域。我特别喜欢作者在介绍新技术或复杂概念时,总是先用一个直观的比喻或一个贴近现实的场景来铺垫,比如将Path插值比作制作精美的雕塑过程,这极大地降低了学习的心理门槛。此外,书中对浏览器兼容性和未来趋势的讨论,也体现了作者的远见卓识。它不仅关注当前的最佳实践,更指引我们去思考未来几年交互设计可能的发展方向,比如如何结合3D变换或更底层的图形API来增强SVG动画的表现力。对于我这种需要不断跟进行业前沿的技术管理者而言,这本书提供的不仅是技术实现,更是一种战略性的视野。它让我能够更有信心地去规划团队的技术栈和项目路线图,确保我们走在技术浪潮的前沿。
评分坦率地说,市面上关于前端动画的书籍不少,但大多流于表面,或者只关注某一个特定的库。但这本《SVG动画》的独到之处在于其内容的广度和深度达到了一个惊人的平衡。它将SVG这一核心技术作为基石,然后层层递进地构建起一个庞大的交互动画生态系统。我发现作者在处理高级主题时,比如使用Web Workers进行复杂的计算密集型动画预处理,或者如何利用SVG的特性实现无损缩放的复杂图层交互,都展现了深厚的专业功底。这些内容对于那些希望将Web应用推向接近原生应用体验的开发者来说,无疑是极具吸引力的实战指南。我尝试按照书中的一个案例,重构了我一个陈旧的仪表盘界面,光是响应速度和视觉反馈的提升,就让团队里的老同事们连连称赞。这本书不是那种读完一遍就能完全掌握的,它更像一本工具书和参考手册,每一次遇到新的交互挑战时,我都会翻开它,总能找到新的灵感和解决方案。
评分我得说,这本书的价值远超出了它所涵盖的技术范畴。它成功地构建了一种“以用户为中心”的动画设计哲学。我曾经在工作中遇到一个难题,就是在复杂的数据可视化界面中,如何用非侵入式的方式引导用户关注关键信息,这本书里的几章内容,尤其是关于微交互和叙事性动画的应用实例,给了我醍醐灌顶的启发。作者没有局限于那些炫技的、占用资源的复杂效果,而是强调“少即是多”的原则,如何通过恰到好处的动态反馈,提升用户操作的确定感和愉悦感。我尤其对书中探讨的“动画的节奏感与时机把握”那一节印象深刻,那几乎可以看作是一本关于“数字情感表达”的教程。它教会了我如何通过速度的快慢、缓冲曲线的调整,来模拟物理世界的真实感,从而让软件界面不再冰冷刻板。对于那些希望自己的产品在用户心中留下深刻、积极印象的设计师和工程师来说,这本书绝对是必读的。它提升的不仅仅是技术,更是对用户心理的洞察力。
评分这本《SVG动画:用复杂交互动画改善用户体验》的图书,在我看来,简直是为那些渴望将枯燥的网页设计提升到艺术境界的开发者准备的秘籍。它不仅仅是教你如何绘制矢量图形,更像是一堂关于如何在数字界面上编织情感与互动的深度课程。我特别欣赏作者在介绍基础概念时所展现的清晰度和耐心,对于一个刚接触SVG动画的新手来说,这些基础知识的讲解至关重要。书中对路径动画、变形效果的处理,以及如何结合CSS和JavaScript实现流畅的过渡,都给出了非常详尽的步骤和代码示例。阅读的过程中,我能清晰地感受到,作者将理论与实践的结合点把握得非常精准,每一步的逻辑推导都环环相扣,让人在学习复杂技巧时不会感到迷茫。特别是关于如何优化动画性能的部分,简直是业界良心,它没有停留在“能动起来就好”的肤浅层面,而是深入探讨了如何在保证视觉效果的前提下,确保用户在各种设备上的流畅体验,这才是真正区分优秀开发者和普通开发者的关键所在。整本书的排版也十分考究,代码块的展示清晰易读,配图精准地说明了技术要点,读起来让人心旷神怡。
评分从排版和结构上来说,这本书的设计哲学也与它的主题完美契合——清晰、高效、美观。每一章的结构都像一个精心设计的组件,模块化程度很高,这意味着读者可以根据自己的需求选择性地深入学习某些特定章节,而不会因为阅读顺序被打乱而感到困扰。我个人最受触动的,是作者在章节末尾留下的“思考与挑战”环节。这些开放式的问题往往引导读者跳出代码本身,去思考动画背后的“为什么”和“怎么样才能更好”,真正地将“改善用户体验”这一核心目标融入到实践中。这种引导式的学习方式,比起死记硬背API要有效得多。它强迫我去审视自己过去那些不经意的设计决策,并用更严谨、更具用户导向的视角去重新构建交互逻辑。这本书无疑是一份厚重的礼物,它将复杂的SVG动画技术,包装成了一套可理解、可应用、可创新的设计工具箱。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有