过渡
一般分线性
和缓和曲线
。线性过渡是以全速开始,移动的过程和结束都是全速的进行,不像我们在现实中的场景,比如你扔一个东西不会立即全速坠落。
在写CSS动画的时候,大家应该经常会用到贝塞尔曲线,一个好的贝塞尔曲线可以让动画变得圆滑,仿照现实生活中的样子。其实,只要是在两个状态之间过渡的变化,缓和曲线(easing curves
都可以让它变得更加自然不粗糙。
animation
和transition
使用CSS中内置的缓和曲线,对页面中其他的部分我们也可以使用这个缓和曲线,分别是:gradient
和box shadow
。虽然不能完全和animation
一样,但是效果也很接近了。
gradients 的 easing
想要在gradients
上使用easing
,我们需要用easing gradients
的概念来模拟,这里介绍一篇文章:Easing Linear Gradients,从文中可以看到更多实现细节。
下图是线性渐变和缓和渐变的区别:
box shadow 的 easing
box shadow
其实也是gradients
的一种,且box shadow
在web中的实现跟gradients
很像,它们不使用线性过渡而使用高斯模糊(Gaussian Blur)
,但还不是很好。真正的shadow
应该倾向于细微的差别更加明显。它们应该在事物附近更暗一点,且按照曲线向外逐渐消失。
下午是box-shadow
在普通模式和easing
模式下的区别:
创建更好看的网站
使用缓和曲线(easing curve)
可以让你的box shadow
和gradients
看起来更加地自然。建议阅读原文,查看更多细节。