CSS中的步进函数

html-css010

CSS中的步进函数,第1张

CSS的动画过程中可以使用贝塞尔曲线等函数指定缓动的动画动作,还可以指定过渡中的每一步骤的状态,这种应用场景通常在创建定格动画的时候,比如一个DOM元素需要展示不同的图组动画,那么前端可以将多个动画图组存放到一个文件夹中,然后通过设置定位,让元素每次显示其中的一个图像。

我们可以尝试在网上找一个动画组的图片。

如果只使用 background-position 属性来实现背景动画,如果使用线性或缓动过渡,那么背景图片只会滑动,无法构成动画,因此,我们使用 steps() 步进函数通过将动画组图片拆解为多个步骤下发出去来完成过渡。

这里的 steps(6, start) 函数指的是“把过渡过程切分为6个不同的步骤,在每一次开始时改变属性”。加上开始的状态,就这样创建了7个帧。

一般steps(6)会在每一步结束时改变属性,但也可以通过传入start或者end作为第二个参数进行说明来明确的指定。

同时需要对步进函数进行声明的是:在完成过渡后,指令结束也就是指鼠标移开的话,过渡则会反向发生,反转的动画仍有6个步骤,这几个步骤不会与原来的背景位置吻合,也就是说当鼠标移开时,会产生动画错乱。

因此后面几种过渡技术可以相对的避免这种情况发生:

众所周知,CSS有一个特殊的calc()函数,用于做基本的数学运算。

demo:

让我们来详细的学习一下这个功能吧:

calc()函数只能在值中使用。

demo:

也可以在部分属性的内部作为单独的值使用.

demo:

它甚至可以成为构成属性一部分的另一个功能的一部分!例如,这里的calc() 用于渐变的色标中.

demo:

calc() 可以将不同的单位混合在一起 .

demo:(在sass中)

例如:假设我们需要写定一个父盒子的7分之一的宽度的盒子;

calc() 中可以使用加减乘除 , 但他们在使用方法上有所不同。

加法(+)和减法(-)要求这两个数都是长度

除法(/)要求第二个数字是无单位的