一、动画常用属性

属性 含义
animation(动画) 用于设置动画属性,他是一个简写的属性,包含6个属性
transition(过渡) 用于设置元素的样式过度,和animation有着类似的效果,但细节上有很大的不同
transform(变形) 用于元素进行旋转、缩放、移动或倾斜,和设置样式的动画并没有什么关系,就相当于color一样用来设置元素的“外表”
translate(移动) translate只是transform的一个属性值,即移动。

transition(过渡)

什么叫过渡?字面意思上来讲,就是元素从这个属性(color)的某个值(red)过渡到这个属性(color)的另外一个值(green),这是一个状态的转变,需要一种条件来触发这种转变,比如我们平时用到的:hoever、:focus、:checked等。

语法:transition: property duration timing-function delay;

描述
transition-property 规定设置过渡效果的 CSS 属性的名称
transition-duration 规定完成过渡效果需要多少秒或毫秒
transition-timing-function 规定速度效果的速度曲线
transition-delay 定义过渡效果何时开始

transform(变形)

transform 分为2D 和 3D,其主要包含以下几种变换:translate位移,scale缩放,rotate旋转,skew扭曲等。

2D变形:

translate位移

  1. transform: translate(50px, 100px);
  2. transform: translateX(50px); // x方向移动50px
  3. transform: translateY(100px);

scale缩放

  1. transform: scale(2, .5);
  2. transform: scaleX(2); // x方向增加一倍
  3. transform: scaleY(.5); // y方向缩小一倍

rotate旋转:rotate(正数表示顺时针旋转,负数表示逆时针旋转)

  1. transform: rotate(30deg);

skew扭曲

  1. transform: skew(30deg, 30deg);
  2. transform: skewX(30deg);
  3. transform: skewY(30deg);

3D变形:

translate位移: translate(x, y, z);

scale缩放: scale(x, y, z);

rotate旋转:rotate3d(x, y, z, angle) (angle:表示3D舞台上旋转的角度)

animation(动画)

在官方的介绍中这个属性是transition属性的扩展,弥补了transition的很多不足。

语法:animation: name duration timing-function delay iteration-count direction play-state fill-mode;

描述
name 用来调用@keyframes定义好的动画,与@keyframes定义的动画名称一致
duration 指定元素播放动画所持续的时间
timing-function 规定速度效果的速度曲线,是针对每一个小动画所在时间范围的变换速率
delay 定义在浏览器开始执行动画之前等待的时间,值整个animation执行之前等待的时间
iteration-count 定义动画的播放次数,可选具体次数或者无限(infinite)
direction 设置动画播放方向:normal(按时间轴顺序),reverse(时间轴反方向运行),alternate(轮流,即来回往复进行),alternate-reverse(动画先反运行再正方向运行,并持续交替运行)
play-state 控制元素动画的播放状态,通过此来控制动画的暂停和继续,两个值:running(继续),paused(暂停)
fill-mode 控制动画结束后,元素的样式,有四个值:none(回到动画没开始时的状态),forwards(动画结束后动画停留在结束状态),backwords(动画回到第一帧的状态),both(根据animation-direction轮流应用forwards和backwards规则),注意与iteration-count不要冲突(动画执行无限次)
  1. .box {
  2. height: 100px;
  3. width: 100px;
  4. border: 15px solid black;
  5. animation: changebox 1s ease-in-out 1s infinite alternate running forwards;
  6. }
  7. .box:hover {
  8. animation-play-state: paused;
  9. }
  10. @keyframes changebox {
  11. 10% {
  12. background: red;
  13. }
  14. 50% {
  15. width: 80px;
  16. }
  17. 70% {
  18. border: 15px solid yellow;
  19. }
  20. 100% {
  21. width: 180px;
  22. height: 180px;
  23. }
  24. }

常用效果

https://www.zhangxinxu.com/wordpress/2017/12/svg-filter-fuse-gooey-effect/

在线制作css动画——CSS animate

cssanimate

链接

w3school动画教程
https://www.w3cschool.cn/css_series/css_series-btk624qf.html

使用“变量种子计数器”扩展CSS动画更多可能性

https://www.zhangxinxu.com/wordpress/2019/05/css-variable-seed-extend-animation/

LottieFiles