笔者分享了关于缓动设计的相关知识,一起来看看~ 先放结论:进入屏幕用减速(ease-out);离开屏幕用加速(ease-in);屏幕内部移动先加后减(ease-in-out)! 缓动的最大用处就是应用在设计的运动表现上,可以结合物理、数学等原理真实地模拟显示生活中的运动现象,更加符合自然规律及人类认知,并使对象按照用户期望的行为交互,提供连续性体验。 在适当缓动的情景下,用户可能会忽视运动本身,专注于页面的内容,从一定程度上保证用户不为因为运动而分散注意力,或调动大脑内的认知资源。 一、前端知识 1. CSS中不同的动画区别 linear:规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1)) Ease-in:规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1)) Ease-out:规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1)) Ease-in-out:规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1)) cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。 2. 相关属性(括号内为定义该内容的相关角色) 移动方向:向左向右等。(UX) 移动距离:以像素为单位。(UI) 移动时长:一个缓动执行的时间。(UX) 移动方式:缓动类型。(UX) 启动延时:缓动启动的延时时长,若设为1秒,即1秒后缓动才启动。(UX) 自动播放:缓动是否自动播放。(UX) 二、缓动详解 主要看以下四个:匀速运动(linear,主要用于对比)、缓动-减速运动(ease-out)、缓动-加速运动(ease-in)、缓动-先加速后减速(ease-in-out)。 1. 匀速运动(linear) 比较少的情况下,会用匀速运动,会显得比较僵硬。不符合物理世界的规律,真实的运动状态下,物体的速度是会随着运动状态发生变化的。下图为匀速运动(linear)时运动距离随时间的变化曲线: 2. 缓动-减速运动(ease-out) 相比于匀速,开始的时候快,结束的时候慢。下图为缓动-减速运动(ease-out)时运动距离随时间的变化曲线: 3. 缓动-加速运动(ease-in) 相比于匀速,开始的时候慢,结束的时候快。下图为缓动-加速运动(ease-in)时运动距离随时间的变化曲线: 在界面设计中,减速和加速动效往往是成对使用的。通常元素进入页面时时用减速运动(ease-out),推出页面时用加速运动(ease-in)。 新元素进入屏幕的时候,用户是希望其能快速进入,所以一开始的速度是快的。当新的元素快要到达的时候,用户的关注点是新元素的形态,这时候,需要减速到达,让用户感受到形态的变化。所以进入页面是减速运动(ease-out)。 用户点击当某元素退出当前页,更加关注的是当前页面给的反馈,所以该元素的初始速度不宜很快,否则用户感受不到是他的操作引起的变化,还是页面自己跳转的。所以离开页面是加速运动(ease-in)。 例如iPhone App Store进入页面用减速: 4. 缓动-先加速后减速(ease-in-out) 很多起点和终点都在界面内的运动都使用这种先加速后减速的缓动。 下图为缓动-先加速后减速(ease-in-out)时运动距离随时间的变化曲线: 小结 进入屏幕用减速;离开屏幕用加速;屏幕内部移动先加后减。