交互动效是怎么实现的

交互动效是怎么实现的,第1张

10条UI交互动效的制作原则

来年我们公布了Gyroscope,很多人问我们用什么JavaScript库做动画。我们也想过向鳏夫宣布,但实际上这并不是一个神秘的地方。

我们没想到女孩们会认为她们需要依靠非凡的JavaScript插件来处理她们的成就。在大多数部门,我们只需要减少对最新阅读器和GPU函数以及css3的 *** 控。

真的有一些高明的武功秘笈,唯一的办法就是花大量的时间测试战争恶化。但是经过多年的试验战,我们发明了一些假想战的代码,可以用手工绘图的方式来表达。这些技能可以让你的页面流畅,你可以运行流行的桌面移动设备阅读器。最重要的是,它们很容易保护。

工艺和写实的方法可以一视同仁,但通用原理几乎可以涵盖所有方面。

什么是动画?

在互联网产生之前,动画曾经是看得见的,教你如何让动画出彩,需要你一辈子的时间。然而,互联网中的真实结果有其共同的有限挑战。

为了呈现流畅的60帧动画效果,每一帧都需要在16毫秒内排好线!时间很短,我们需要找到最有效的方式把每一帧的内容排好,才能流畅的表达出来。

一些动态绘图思想的例子

有多种方法可以将网站上的结果制作成动画。比如,就在互联网出现之前,电影胶片无处不在。它 *** 纵了脚画的突兀胶片,每秒播放多帧,实现动画的错觉。

Twitter在最近的心形动画中 *** 纵了那种方法,通过过程电影绘制了一种动人的粗糙精神。

结果也可以由过程中的许多独立的小元素绘制,可能是在SVG中,但那样会太大,不像它应该的那样流畅。

很多时候你会用CSS切换属性来主动实现元素变化的动画效果。这种技术被称为“补间”,因为它在两个不同的属性值之间切换(译者注:补间是通过转换两个不同的值来实现的)。它的优点是可以用非常简单的方式消除汇兑损失,而不必从总行的逻辑内容出发。是一个完善的、递增的动画,比如介绍、旁白,还有鼠标悬停等简单的交互。

材料:所有你需要知道的CSS转换

其他时候,基于枢轴帧的CSS动画属性会非常适合不断变化的场景元素。比如陀螺仪中的圆环默认连续移动,还有其他可以 *** 纵CSS动画的例子,比如齿轮。

为了避免回头看的烦恼,希望以下举措能大大提高你的动画效果:

1.除了不透明度和变换之外,没有要改变的属性!即使你认为它可以停止,也不要激动!

画中百分之八十的变质都会用那个基本原理,哪怕是动的。你可能听说过这条规则。不是我提出来的,是没几个人遵守。就像“闭上嘴,迈开腿”,主动性很好,但也是最简单,最容易被忽视的。

对于已经习惯了那种思想的人来说很简单,但是对于动画使用传统CSS属性的人来说,会是一种极大的冲劲。

比如想让一个元素变小,可以用transform:scale()代替改变宽度;如果要移动它,可以使用简单的transform:translatextotransform:translatey,从而替换每一帧中需要重新构建的边距和填充。

你为什么要这么做?

对于人类来说,改变宽度、填充黑色或其他属性没什么大不了的——如果简单的话,人们会更愿意这样做——但对于计算机来说,这就像天要塌下来了,甚至比这还糟糕。

读者已经下了很大的功夫去降级那些 *** 控,属性的转换其实很简单有效,而且可以丰富 *** 控的隐卡,不需要一开始就给元素划线。

在第一次卸载页面的时候,你可能会觉得自己疯了——处理所有圆角,引入图像,给一切加上正片阴影,如果你没有那么确定再次成为一个静态的神仙。如果那种情况只会发生一次,你不妨多加小心。但是,内容内衬一旦做好,就要尽量从头卸载。

更多:使用翻译移动元素(保罗爱尔兰语)

2.使用Pointer-Events属性以一种非常清晰的方式隐藏内容:只 *** 纵透明度来隐藏元素。

大概会有交叉读者警告,但是如果你只死记硬背webkit和其他流行的读者,会让你成为一只老虎。

曾几何时,动画结果都要通过jquery的animate()方法来处理,很多巨大的密集型结果都是通过切换进程显示的属性值来处理的。如果出现的太早,那么动画出借完成,但是如果出现的太早,页面上会出现空的缺口,总是需要回调函数来擦拭完成的动画的底部。

CSS中的pointer-events属性(虽然曾经存在了一段时间,但并不经常使用)只是让元素相互落空响应,就好像不存在一样。它可以通过进程CSS显示或隐藏,不会被打破或影响页面的内衬或可见性。

除了设置不透明度为整体,设置显示为无有相同的结果,但没有新的衬机。当我需要隐藏元素时,我会将它的不透明度设置为0,将指针事件设置为off,然后让它消失。

这样做特别适合那些定位正确的元素,因为你可以傲慢也可以谦虚,它们不会影响页面中的其他元素。

偶尔剑会拐错弯,但动画的机会并不总是完美的——比如一个元素在隐形的时候还能正视其他内容,只有在元素完全融合的时候才能正视其他内容,但不必悲观,会有办法处理的。(下面会提到处理方法。)

3.没必要一次给所有东西都设置动画,用动作安排还原代替。

单个动画会很流畅,但是和其他很多动画一起,可能就完了。写一个流畅的例子很简单,但是把数量缩减到所有网站的时候就很容易保持了。因此,合理安排每个元素非常重要。

你需要安排好你所有的时间,让所有的动画内容同时停止启动或者停止。在一个典型的例子中,两个或三个动画可以同时停止,而不会显示出停滞的迹象,尤其是当它们的开始时间略有不同时。然而,超过这个数字,动画可能会被延迟。

知道动作安排的思路很重要,除非你的页面只有一个元素。看似是跳舞的工具,但在动画领域同样重要。每一个内容都要在目标战的合适时机呈现。就算分开了也要给人一种循序渐进的感觉。

谷歌的材料设计有几个有趣的举措,侧重于行动规划。虽然那不是真正目的的秘密,但总有一些是你应该思考的。

更多:谷歌材料设计运动

4.适当地减少切换延迟可以更容易地安排行动。

画的布局很重要,同时会做大量的实验战测试才刚刚好。不过动画布局的代码其实并不是很庞大。

我通常会改变一个女性元素(通常是body)的类值来触碰一系列的变化,这些变化有不同的切换延迟,以便及时显示。从单个代码的角度来说,你只需要考虑形态的变化,不用担心大量的时间和空间的维护。

陀螺仪镀铬扩展的动画

交错一系列元素是一种简单易停的动画布局方法。这种方法非常有用,因为它在功能上非常出色,同时也很优雅——但是请记住,你的意图是让几个动画同时发生。你要把那些动画摊开,让每一个都代表流畅,而不是一会儿动画太多,暗示节奏慢。恰当的部门堆叠会显得连续流畅,而不是一个链状的动态图。

代码示例

有一些简单的技巧可以错开你的元素——尤其是里面有很多内容。如果一个页面中的条目少于10个,并且可以估计元素的大概数量(就像在静态页面中一样),我通常会在CSS中指定具体的值。那是最简单最容易的方法。

一个简单的萨斯轮回

更多的内容,大概就是静态内容了,可以在轮回的静态日子里给每个内容加上时间。

一个简单的JavaScript轮回

有两个典型变量:基本时间延迟和每个目标的时间延迟。很容易调和,但是一旦找到确切的值,结果就完美了。

5.删除假设正在慢动作中使用,之后会减慢绘制速度。

在绘画的想象中,节省时间就是一切。20%的事情是展示真实的结果,剩下的80%是找到合适的参数,让他们在同时进攻的时候流畅起来。

尤其是在多个动画正在编排的时候,为了达到下层功能与下层功能的协调,观察动画的慢动作会让一切变得非常简单。

无论你使用的是JavaScript还是CSS预处理器,像SASS(我们很喜欢),都需要简单地做一些额外的计算,声明一些有效的变量。

你必须确保它可以很容易地测试不同的速度或节省时间。举个例子,如果一个动画结果正在以1/10的比例被使用,来表示天空在犹豫,那么可能存在一些非常根本性的问题。如果你是放慢50倍来表达流畅度,你可以找到流畅度随时间变化的最大速率。一般速度下很容易注意到5毫秒的误差,但是速度慢下来就变得非常显著了。

特别是做一个非常大的动态分析,大概处理一个非常平滑的功能瓶颈,慢动作检察元素会非常有效。

一方面你会用慢动作把很多细节做的很完美,动画加速的时候会让人觉得很完美。虽然这些都很微妙,但用户会注意到动画效果的流畅细节。

只有OSX的功能——如果你shift+face——点击一个使用图标的最小化按钮,你会瞥见它在慢慢移动。基于这一点,我们已经在陀螺仪上实现了这一功能。当你按下shift键时,慢动作形式将被激活。

6.为你的用户录制一个图像,你在一遍又一遍的播放,以获得有价值的第三人称视角。

偶然的视角可以帮助你对事物有更清晰的认识,录像是一个很好的方式。

有些人会用AE做视频放到网站上,而我正好相反。我总是参加测试,在网站世界里制作很棒的视频。

视频的公布真的很难。有一天,我对自己做的工具感到很冲动,就把它们读了下来,分享给伙伴们。

但是第二遍看的时候发现了一些瑕疵,设置的不是那么合适,出现了提前高峰。让我面对面。发现很多内容要求变差,不能只接受视频给伴侣。

在使用的过程中,所有的缺陷都被简单的保护起来,但在视频中,慢动作的动画却能让所有的成果在露天中脱颖而出。

有人说,拍出战争的结果,其实看起来不完整,一样,但也许是准确的。

这曾经是我业务中非常重要的一部分,我会看慢动作视频,修复任何我认为不合适的东西。把那种成绩归咎于阅读器功能好真的很容易,但是那些成绩多变质多测试就可以处理了。

而且找一个早高峰比你在视频里找的还难,而且你觉得视频好到可以播出,那就可以在你的页面发布。

7.收藏的动作可以很早就形成。应该提前十年左右卸载HTTP请求。

图片是其中的第一恶,无论是几张大图(风光大图),关于很多小图(50个头),关于很多内容(从头到尾有很多图的几页)。

第一次卸载页面时,会初始化和下载很多工具。这种内容分析,表白等第三轮脚本会让功能变差。偶尔,如果动画结果早几秒在页面中卸载,会大大提高功能。

如果有需要,不要太过分。提前画好,巨幅页面要求非常准确的前期战斗时间,让你顺利运行。你一开始总想下载尽可能少的数据,等次要内容的介绍和绘制完成后再继续下载其他内容。

在一个有很多数据的页面里,你需要沉思,需要担心一切。静态页面中的良好呈现结果在卸载及时数据时可能会变得迟缓。如果有些内容看似死气沉沉,但确实出来了,那大概是从头到尾都表达不流畅。我建议检查一下收藏,确保可以同时处理掉其他内容。

8.没必要间接绑定,转乱。这似乎是个好主意,但事实并非如此。

基于旋转的动画在过去几年中正在爆炸式增长,尤其是在视觉敏锐度和其他特效的内容方面。他们想象的形式是好是坏还有待检验,但在工艺上有不同的实现方式。

在基于旋转的动画中有一种非常流行的处置方式,将旋转的必然间隔作为意外处置,触及动画的内容。除非你对自己的涵养视而不见,否则我会主张你不要用那种方法,因为那真的很简单,很堕落,很好保护。

更糟糕的是,旋转栏的功能是自己定义的,但默许的功能是不需要的——别名scrolljacking。请不要读那个。它没有打开。

十个原则中,那个特别适合移动开发,其他的也可以是想象用户体验的好理论。

如果你确实要求一个共同的体验,并且你期望它是建立在扭转一些其他特殊事故的基础上,我建议创建一个快速原型来实现真实情况,而不是试图想象意外情况而不向上天低头。

9.尽早并经常每天在移动设备上进行测试。

大部分大学的网站都在拆,建在电脑上,这台电脑最常用来测试。所以主要考虑移动端体验战争动画功能。有些工艺(比如画布)大概是在画工艺在动的时候,天气其实是不好的。

然而,如果代码写得很好,但质量下降了(参考描述规则#1),那就把整个体验变得比计算机更流畅。移动整个东西是一件非常容易的工作,但新iPhone比举起一台电脑还要快!如果你接受了最初的几个提议,你将会得到一个很棒的移动演示。

移动会议网站将变得非常重要。我建议你花一个星期的时间用脚机检查你的网站,这可能是极端的。你可能会觉得自己受到了惩罚,被迫使用移动版,但你应该调解你的意图。

不断恶化想象和进步的功能,直到网站在动,就意味着战争和电脑一样美好和便捷。

如果你用移动端和网站见面一个星期,你会得到一个比电脑上体验更差,体验更好的网站。即使你是在利用那些已经走到旅程尽头的人的工作,这也是值得的,这意味着那些成果在你的用户体验到之前就会丢失!

10.它经常在不同的设备上进行测试,有不同的屏幕尺寸和分辨率,可能有各种类型的设备。

除了移动终端电脑,还有很多因素可以对功能产生很大的影响,比如是否可以是“视网膜”屏幕,窗口中心的分辨率,硬件的老旧程度等等。

尽管Chorme和Safari都是基于Webkit的阅读器,语法相似,但它们也有自己的特点。每次Chrome在城市建设上做出一些成绩的时候,也会引入新的bug,所以你必须时刻保持警惕。

当然,你并不只是想拆了建一个关于所有读者的网站是通用的,你可以找一个敏感的方式,这样你就可以删除一些经常有效的功能。

我一般在小MacBookAiriMac上用网站,每次城市有新的成果出现都会重建——尤其是动画功能圈的成果。偶尔会有问题,疑惑,可读性等等。

媒体查询是一件非常强大的事情。它的示例性用途是定位由下部的近似宽度形成的样式差异,但它也可以用于根据分辨率增加目标内容和其他属性。另外,识别体系战装备实例的功能往往是有效的,因为移动装备的功能特性与计算机有很大不同。

本文简介:流畅网络动画的10条原则

作者:阿南德·夏尔马

翻译:掘金翻译计划

译者:王自健

修正者:稻草人,戈西

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/778991.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存