在一般的业务开发环境下,所有的动效是否全部由程序实现,这是需要按照不同的情况设计实现手段进行判断的,一个很小的特殊效果让前端日以继夜地堆代码是一种性价比极低的方法。很多情况下,对于不需要太多交互操作的动态效果,实际上是前端提供一个画布区域设计师通过逐帧动画的设计其实现效果,会更有效地提升产品开发效率。这里给大家提供三个性价比相当高的方法:
(1)GIF动画
大家对GF图片应用并不陌生,今天主要跟大家普及GIF的压缩技巧。我们在做用户走访的时候发现,很多B类用户办公条件都不具备高速的带宽,所以我们必须考虑到GIF的体量。拿我们在父亲节做的一个情感化的小动效来说,在PS无压缩的情况下是67k,我们可以通过对帧速率进行压缩,每两帧抽减一帧,为保持循环周期不变,新的每帧持续时间需要设置成原来的两倍,这样压缩之后体量就会减少为原来的1/2,但是效果比起来,有一点点卡顿的感觉,效果没有原来的流畅了。 这里给大家推荐另外一种方法,扁平化的动效设计可以对颜色和损耗做适当的压缩,并且删掉循环中重复或者是非常相近的帧,注意删掉某一帧之后,要把它替代装的时间补全,保证循环周期不变,这样也可以有效地压缩GF体量,但是需要注意一点的是颜色压缩只活用于无渐变的动效。GIF的应用范围比较小,由于它比较难以控制播放,所以基本上都是用在像LOGO区这样不需要太多操作的区域。 (2)webM视频 压缩方式对比webM是一个视频格式,并且是一个可以控制播放的容器,它的体量是GI的1/3,兼容响应式的设计,优点是减少设计成本,全面兼容浏览器,硬件要求低尝试在B类营销场景中插入动态背景视频,原视频367MB压缩为GIF的6.9MB,转换为webM的1.8MB,体量完全符合用户要求,并且图像的损失也在可控范围内;在产品区域的应用,由于可控播放的优点,未来我们的产品完全可以360度地展现。 (3)PNG序列 后来看一下PNG序列,对于游戏类可以进行预加载的网页应用,在开发时间较短的,可以使用PNG序列来展现应用想要呈现的效果,通过时间点和动效周期的精,可以让用户有非常流畅的交互体验。比如,我们在拳击体感游戏“啪啪快打”项目中尝试用PNG序列来实现一个体感游戏,用户可以通过手机连接电脑,通过手势控制来进行打斗的操作。具体的动效设计用雪碧图来实现。 这些都是我们web端无法比拟的,我们在做网页动效设计的时候必须考虑带宽,主流两个操作系统使用的小时间单位都是毫秒,所以我们的桢间隔单位按照毫秒取整。