我们可以尝试在网上找一个动画组的图片。
如果只使用 background-position 属性来实现背景动画,如果使用线性或缓动过渡,那么背景图片只会滑动,无法构成动画,因此,我们使用 steps() 步进函数通过将动画组图片拆解为多个步骤下发出去来完成过渡。
这里的 steps(6, start) 函数指的是“把过渡过程切分为6个不同的步骤,在每一次开始时改变属性”。加上开始的状态,就这样创建了7个帧。
一般steps(6)会在每一步结束时改变属性,但也可以通过传入start或者end作为第二个参数进行说明来明确的指定。
同时需要对步进函数进行声明的是:在完成过渡后,指令结束也就是指鼠标移开的话,过渡则会反向发生,反转的动画仍有6个步骤,这几个步骤不会与原来的背景位置吻合,也就是说当鼠标移开时,会产生动画错乱。
因此后面几种过渡技术可以相对的避免这种情况发生:
css是可以支持变量,且所有主流浏览器都支持。css变量又称"css自定义属性",css的变量声明是以“--”前缀,而前缀是"$"或"@"被预处理器sass或less占用,所以,css以"--"开头可以避免与预处理器产生冲突,
2.属性名可以包含数字,字母,以及下划线或者短横线,也可以是中文,日文或者韩文,但不能是属性名或数字开头,不能包含$,[,^,(,%等字符。
3.变量--primary只能用属性值,不能用作属性名
4.数字和单位直接写一起需使用calc()函数
拓展
cal()函数支持 "+", "-", "*", "/" 运算,需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);
任何长度值都可以使用calc()函数进行计算;
calc()函数使用标准的数学运算优先级规则;
5.变量的值是字符串时,可以直接拼接
6.var()函数第二个参数是设置默认值,若该变量不存在,则使用此默认值
7.css变量可以在任意选择器中使用包括在标签元素style及@media中
若想了解更深可看大神文章:
https://www.ruanyifeng.com/blog/2017/05/css-variables.html
https://www.zhangxinxu.com/wordpress/2016/11/css-css3-variables-var/