前言
在了解 cubic-bezier 之前,你需要对 CSS3 中的动画效果有所认识,它是 animation-timing-function 和 transition-timing-function 中一个重要的内容。
PS:如果你用过PS的钢笔工具,应该对这个曲线也会十分熟悉。
简介
cubic-bezier 又称三次贝塞尔,主要是为了 animation 生成速度曲线的函数,规定是 cubic-bezier(<x1>,<y1>,<x2>,<y2>)。
Hoho, 原来呀~贝塞尔曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。我们不妨把这四对已知点坐标依次定义成(x0,y0)、 (x1,y1)、(x2,y2)和(x3,y3)。贝塞尔曲线必定通过首尾两个点,。
我们可以从下图中简要理解一下 cubic-bezier:
从上图我们需要知道的是 cubic-bezier 的取值范围:
这种实现方法是利用三个点画弧线,moveToPoint即是曲线的起点,ToPoint是终点,controlPoint就是中间的基点,然后三点连接起来,即可画出一条简单的弧线。
P0:默认值 (0,0)
P1:动态取值 (x1,y1)
P2:动态取值 (x2,y2)
P3:默认值 (1,1)
我们需要关注的是 P1 和 P2 两点的取值,而其中 X 轴的取值范围是 0 到 1,当取值超出范围时 cubic-bezier 将失效;Y 轴的取值没有规定,如何用贝塞尔曲线画想要的图,当然也毋须过大。,
我们需要关注的是 P1 和 P2 两点的取值,而其中 X 轴的取值范围是 0 到 1,当取值超出范围时 cubic-bezier 将失效;Y 轴的取值没有规定,当然也毋须过大。
点击“手绘工具”选择“贝塞尔工具”,按住鼠标左键不放,将鼠标拖向下一曲线段节点的方向,此时会出现控制线(蓝色虚线箭头);松开鼠标,在需要添加节点处按住鼠标不放,将鼠标拖向再下一曲线段节点的方向,您可以在不松开。
最直接的理解是,以一条直线放在范围只有 1 的坐标轴中,并从中间拿出两个点来拉扯(X 轴的取值区间是 [0,1],Y 轴任意),最后形成的曲线就是动画的速度曲线。
1、在电脑上打开 PR 2018 ,点击页面中间的新建项目。2、为新的项目起一个名称,点击确定。3、项目新建完成之后,在电脑文件夹中找到需要使用的素材,点击打开。4、点击页面左上角的效果控件。5、在打开的自由绘制贝塞尔曲。
使用
在测试例子中:
<!DOCTYPE html><html lang=&34;><head><meta charset=&34;><title>Document</title><style>.animation {width: 50px;height: 50px;background-color: 34;animation"></div></body></html>
我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点。
那么让我们在代码中加入 cubic-bezier(.17,.86,.73,.14):
再刷新页面观察效果,会看到动画在执行过程中有一段很缓慢的移动,前后的速度相似,此时的运动曲线是:
几个常用的固定值对应的 cubic-bezier 值以及速度曲线
1、ease:cubic-bezier(.25,.1,.25,1)
2、liner:cubic-bezier(0,0,1,1) / cubic-bezier(1,1,0,0)
贝塞尔曲线绘制一般两个点即可。首先起笔的时候单击空白画面,然后在需要的位置再次单击即可完成一条曲线。
3、ease-in:cubic-bezier(.42,0,1,1)
4、ease-out:cubic-bezier(0,0,.58,1)
5、ease-in-out:cubic-bezier(.42,0,.58,1)
6、In Out . Back(来回的缓冲效果):cubic-bezier(0.68,-0.55,0.27,1.55)
附:制图工具