超实用的网页动画终极指南

   今天这篇重磅推荐一下,全文近6000字,从网页动画的简史、种类到实现都有特别细致的讲述,附大量原生教程,帮你彻彻底底掌握这个点。特别感谢译者@十萬個為什麽 的辛勤付出,同学们记得给他点赞哟 >>>

  动画是人类毕生的理想之一(如果像某些历史学家相信的那样)。这个理论源起于洞穴壁画:在某些洞穴壁画中,经常见到一些生物被画上远多于正常数量的肢体。

  这背后有很多套理论。有些指出这很简单,因为艺术家们并没有方法可以擦除这些肢体,于是将他们的错误留在壁画上,传给了子孙。还有理论相信,这些是最早的试图在静止图像中捕捉动态的方法。我选择相信后者。

  还有比捕捉动态更加自然的愿望了吗?自然界的一切都在运动。人在行走,水在流动,植物开枝散叶,自然界唯一不变的就是变化,以一种运动的形式。有些在模糊中一闪而过,有些则慢到难以察觉,但这些都在发生。

  动画对于网页设计师已经不再新奇……它正在成为最基础的交互设计效果。


  动画就是变化,是一种运动。它是我们艺术创作中最接近真实反映生活的东西。这就是为什么人们总是说“动画使我们的网站(或是演讲,诸如此类)鲜活起来。”这可能是陈词滥调了,但这个词很优美地呈现了动画在网页设计中的目的。

  正确使用运动感,可以告诉用户他们完成了某些操作。他们成功地与界面进行了交互,引发了某些变化。

  人们与真实物体互动时,也会触发并体验到相同的感觉(至少是类似的感觉)。就某种程度而言,动画是拟物的。没错,我说的就是拟物。

  使用得当时,动画可以被设计成模仿真实世界的交互。我们似乎在原地打转。可能我们不会再过多使用复杂的皮革纹理,但我们仍然在尝试效仿现实世界。

  网页动画简史

  在进入实用部分之前,我们看看互联网上的动画是如何发展到今天(这么酷)的。最初一切都诞生于gif图……

  原来.gif文件年龄甚至比我还大2岁。它们在1987年被创造,正是早年我们刚知道(或多或少)互联网的时候。因此开创了跳舞婴儿的纪元,那些东西太可怕了,还是忘了好。

  如果gif图的流行告诉了我们什么,那就是人们想要将动画引入网页中。在此提醒一下,多数人可能并没有从改善可用性的方式考虑动画。一切都只是为了产生一点个性,表现一点生机,与其他静止的网页区分开。

  现在正是关注网页动画与App动画的最佳时机。

  当.gif文件的能力耗尽后,人们想要一种更好的方式,来向网站中添加动画。对,声音!声音太棒了。如果人们打开你的网页,开始播放你最喜欢的歌曲,这得有多棒啊?要像真正的歌曲……而不是那种破烂电脑音乐,对吧?

  是Flash让我们艰难地学到了这个教训。但是别忘了Flash在它所处的年代是相当惊艳的。实际上它是一种革新。它是一种进步。它非常酷。

  无论后来它被如何滥用,要知道Flash让我们在互联网中做一些从没想过的事情。它拓宽了创意的视野,为人们在一个崭新的行业创造了工作机会,带来了“网页动画”和90年代最棒的东西(除了天堂):Flash游戏。甚至直到现在,我都觉得那些游戏使人入迷。

  随着时间推移,很多设计师转移到基于Javascript的动画上,用于创造一些小东西,比如下拉菜单和其他导航元素。毕竟如果做得恰当的话,这更有利于SEO。其他人只用Javascript是因为,那正是FrontPage和DreamWeaver调用按钮图片的方式。微小的进步仍然是进步。

  00年代中旬,W3C已经在努力将动画加入到CSS规范中。2009年,首份公开的CSS动画规范初稿就发布了。

  如今呢?我们探索出了强制硬件渲染、CSS动画结合SVG文件、延伸基本动画功能的JavaScript库,等等。

  现在我们正在探寻各种方式,不仅仅是为网站增添风格。我们在试图改善可用性,告知并教育用户,让用户更容易了解他们在做什么。

  对于网页设计师,动画不再是新奇事物。它成为了影视行业的基础,一种全新的叙事方式。对我们而言,它成为了有效交互设计的基础。


  现在正是关注网页动画与App动画的最佳时机。科技尚没有完全成熟(什么时候会呢),也无法提供全方位支持(何时能够呢),但我们在探寻新的方式将它呈现在世人面前,无需通过插件或是专用代码。

  我们越是以开放的动画标准为基础,越多的人就能首先看到。近年来人们专注于运用动画驱动交互,这是一件非常非常好的事情。

  是时候成为先行者了。

  网页动画的种类

  回到正题。我们在谈论的是哪种动画?我的意思是,我说了很多关于使用动画改善用户界面的言论,那些究竟是什么意思?

  很显然,我们不能将动画效果随手加于网页元素之上,然后期盼它能提升转化率。那太傻了。就像设计的所有其他方面,使用哪种动画,何时使用,这都需要仔细考虑。


  实际细节与实现也是必须考虑的。如果你的动画过于耗费资源,拖慢用户的移动设备,或者更糟的是拖慢他们的桌面设备,这就有问题了。很多问题。

  我们由此入手,看看网页上几种典型的动画:

  界面元素动画

  我不知道这是不是最普遍的一类动画,不过我猜是的。它应该获此殊荣。在我的观念中,这是最有用的动画类型。

  正如我在介绍中说的,这是一种让用户了解他们的操作(比如点击)被记录的动画。变化的发生需要他们的点击来催化,无论是转向另一个页面,打开侧边栏或模态窗口,还是在客服窗口中发送电子邮件。

  不是说有反馈更好,而是如今反馈是必须的,这是个扁平化设计的世界。人们需要了解界面与装饰物之间的区别。让元素运动起来,是简单微妙的交互方式,给予用户他们所需的反馈。

  它就像改变按钮背景色或让它跳动那么简单。这个类型也包含了侧边栏菜单“滑入”页面的动画,还有模态窗口放大显现的动画。

  Pro-foods


  等待动画

  这个也是,同样是为了给用户提供反馈。这类动画,会在某些操作正在后台进行时呈现给用户,你可不想让他们等到崩溃。

  这类动画的作用很久以前就得到了印证,就在图形化用户界面首次发明的时候。最早的方式是鼠标指针变成沙漏,还有进度条也是。Apple在某时刻采用了“旋转的沙滩排球”,而windows则呈现了文件优雅地从一个文件夹飞向另一个。


  这些惯例第一时间就被网页采用了,理由很充分。当用户开始疑惑正在发生什么时,他们会一直点击或点按。这是沮丧的一种表现。他们认为这样会让进度加快一点。

  无论哪种方式,告诉用户正在发生的事情,哪怕通过一个简单的进度条,也能极大减轻精神负担……即使对于我们这些使用电脑很久的用户也是一样。

  Beegit 是一款写作应用,我用它来撰写和编辑这篇文章。它提供了一个便捷的“进度圈”,告诉我图片何时会上传完成,在模态窗口的左上角可以看到:

时间: 2024-12-03 07:47:49

超实用的网页动画终极指南的相关文章

浏览器渲染流水线解析与网页动画性能优化

若干年前,我写过一篇介绍浏览器渲染流水线的文章 - How Rendering Work (in WebKit and Blink),这篇文章,一来部分内容已经过时,二来缺少一个全局视角来对流水线整体进行分析,所以打算重新写一篇新的文章,从一个更高抽象层次和高度简化的方式对浏览器的渲染流水线进行解析,能让大部分页端同学都能够看的明白,并以此作为指引来分析和优化页面的渲染/动画性能. 有些基本概念如图层,分块,光栅化基本没有发生变化,如果读者不理解的话请参考 How Rendering Work

网页动画的十二原则

  作为前端的设计师和工程师,我们用 CSS 去做样式.定位并创建出好看的网站.我们经常用 CSS 去添加页面的运动过渡效果甚至动画,但我们经常做的东西不会超过这些. 动效是一个有助于访客和消费者理解我们设计的强有力工具.这里有些原则能最大限度地应用在我们的工作中. 迪士尼经过基础工作练习的长时间累积,在 1981 年出版的 The Illusion of Life: Disney Animation 一书中发表了动画的十二个原则 (12 Principles of Animation) .这些

扁平化设计终极指南

  苹果iOS 7将扁平化设计风格推向了一个顶点.目前,扁平化设计是当下最流行的设计风格.不少设计师或许都想要尝试一下扁平化设计,但却不知道该要如何开始.这里,我们就为大家搜集了一些扁平化资源,从UI套件到调色工具,再到字体选择和WP主题,从理论文章再到创意图库.我们将为大家呈现出体系化的扁平化资源,一起来看看: 不收藏都不好意思的扁平化设计终极指南 扁平化设计 对于设计师来说,扁平化设计是一种实打实的设计风格,不要花招,不要粉饰.从整体的角度来讲,扁平化设计是一种极简主义美学,附以明亮柔和的色

Docker 终极指南

Docker 终极指南 Docker是一个相对较新且发展非常快速的项目,可用来创建非常轻量的"虚拟机".注意这里的引号非常重要,Docker创建的并非真正的虚拟机,而更像是打了激素的chroot,嗯,是大量的激素. 在我们继续之前,我先说下,截至目前(2015年1月4日)为止,Docker只能在Linux上工作,暂不支持Windows或OSX(译者注:不直接支持).我稍后会讲到Docker的架构,你会明白其中的原因.所以,如果想在非Linux平台上使用Docker,你需要在虚拟机里运行

Linux桌面环境终极指南

Linux桌面环境终极指南 去年,Network World网站内的Linux老牌拥护者Bryan Lunduke曾经给自己定下一项奋斗目标,即深入到各类Linux桌面系统当中.以至少一周的时间利用其完成工作及个人计算任务,而后将他的心得体会记 录在Linux Tycoon博客当中. Linux桌面环境终极指南 最终他撰写出十篇评测报告,我们将其内容进行了收集与整理,以便大家通过今天的文章将不同桌面环境之间的比较结论一网打尽.当然,也欢迎尚未体验过Linux桌面系统的朋友将本文作为参考资料加以借

创业起步:先收藏这份终极指南

创建公司对所有的人来说都是一件疯狂的事情.创业过程中,有很多你可能想不到的是事情需要你去花费精力去解决,如果这些事情都堆到一起的话,你可就有的头疼了.你就像完全陷入沼泽中,慌忙不迭的四处求助以期解决眼下的难题.任务.好在我已是一个经历创业旅程的一名创业者,这期间,我经历过任何你现在正陷入的麻烦,也了解你的困扰.正是有过这样的而经历,所以将曾经用过的强大资源罗列出来这样一篇终极指南与大家分享,供那些正在创业的同胞们遇到各方面的问题时参考.希望这些资源可以帮助你处理你遇到的问题,推动你的创业公司快速

Docker终极指南

本文讲的是Docker终极指南,[编者的话]Docker入门的好文章,之前在微博上就有很多人推荐,也是2015年的新文章,DockOne作了翻译. Docker是一个相对较新且发展非常快速的项目,可用来创建非常轻量的"虚拟机".注意,这里的引号非常重要,Docker创建的并非真正的虚拟机,而更像是打了激素的chroot,嗯,是大量的激素. 在我们继续之前,我先说下,截至目前(2015年1月4日),Docker只能在Linux上工作,暂不支持Windows或OSX(译者注:不直接支持).

如何编写更好的SQL查询:终极指南-第三部分

本次我们学习<如何编写更好的SQL查询>系列的最后一篇文章.   时间复杂度和大O符号 通过前两篇文章,我们已经对查询计划有了一定了解.接下来,我们还可以借助计算复杂度理论,来进一步深入地挖掘和思考性能的提升.理论计算机科学这一领域聚焦于:根据难度来对计算问题进行分类.这些计算问题可以是算法问题,也可以是查询问题. 对于查询,我们可以不按照难度进行分类,而是按照运行查询并得到结果所需的时间来进行分类.这种方式也被称为按照时间复杂度进行分类. 使用大O符号,可以根据输入的增长速度来表示运行时间,

如何编写更好的SQL查询:终极指南-第二部分

上一篇文章中,我们学习了 SQL 查询是如何执行的以及在编写 SQL 查询语句时需要注意的地方. 下面,我进一步学习查询方法以及查询优化.   基于集合和程序的方法进行查询 反向模型中隐含的事实是,建立查询时基于集合和程序的方法之间存在着不同. 查询的程序方法是一种非常类似于编程的方法:你告诉系统需要做些什么以及如何做.例如上一篇文章中的示例,通过执行一个函数然后调用另一个函数来查询数据库,或者使用包含循环.条件和用户定义函数(UDF)的逻辑方式来获得最终查询结果.你会发现通过这种方式,一直在请