小猴子跌落山崖之 linear、ease、ease-in

本文通过小猴子跌落山崖的动画例子,深入浅出地解析了CSS动画中`linear`、`ease`、`ease-in`等关键字的含义和效果。这些关键字实际上对应于`cubic-bezier`函数的不同形态,用于控制动画速度的变化。例如,`linear`表示匀速动画,`ease`表示缓慢开始和结束,`ease-in`表示缓慢开始并加速,`ease-out`表示快速开始后减速。作者还提供了相关的GitHub Demo链接供读者实践。

今天通过一个小猴子跌落山崖的过程来学习一下 animation-timing-function,我做了一个 demo,效果如下:

无论做移动端还是前端的动画,都会频繁地接触 linear、ease、ease-in、ease-out、ease-in-out 这些函数,那么它们究竟有哪些区别,今天这节内容一探究竟。

先明确一点 ease != easy。

可以把动画看做是由「多张图片组成」的一个集合,以一定速度来切换这些图片,会给人产生一种图片在动的幻觉。而 linear、ease 这些关键字就是用来控制这些图片以多快的速度来切换,比如 0.1s 内「匀速」地切换 5 张图片,0.1s 内先慢后快切换 5 张图片。

linear、ease、ease-in、ease-out、ease-in-out 这些其实是一些关键字,它的本质是缓冲函数 cubic-bezier (x1, y1, x2, y2) ,比如 linear 与 cubic-bezier (0, 0, 1, 1) 等价。我把这些关键字称为以「傻瓜式」的方式来帮助你完成动画的设计。我先解释下这些关键字的作用:

1、linear => cubic-bezier(0, 0, 1, 1)

动画自始至终以同一速度再变化。

2、ease => cubic-bezier(0.25, 0.1, 0.25, 1.0)

动画缓慢开始,「突然」加速,再缓慢结束;

3、ease-in => cubic-bezier(0.42, 0.0, 1.0, 1.0)

动画缓慢开始,然后逐渐加速直到结束。

4、ease-out => cubic-bezier(0.0, 0.0, 0.58, 1.0)

动画突然开始,然后逐渐减速直到结束。也就是说它的开始速度很快。

5、ease-in-out => cubic-bezier(0.42, 0.0, 0.58, 1.0)

这个是 ease-in 和 ease-out 的结合,前半段是 ease-in 的表现,后半段是 ease-out 的表现。动画缓慢开始,加速,缓慢结束。

我们常用的就这几个方法,关于这些关键字我做个的 demo:

https://github.com/lefex/FE/tree/master/animation/animation。

大家加油!


推荐阅读:

学习前端的 7 个专题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值