css动画之animate

159 阅读2分钟

视频地址:点此查看

今天我们来做这样一个效果,使用css让一个图片无限旋转,当然你也可以做其他动画,这里我们用到一个css的属性animation

我们先引入一张图片,并给他设置成圆形的,基础代码是这样的

img{
  width: 100px;
  height: 100px;
  padding: 4px;
  border-radius: 50%;
  border: 3px solid skyblue;
}

<img src="./avatar.jpg" alt="">

最后效果是这样的

接下来我们使用关键帧的方式定义动画

@keyframes rotate {
  form {
  	transform: rotate(0deg);
  }
  to {
	transform: rotate(360deg);
  }
}

这几行代码指的是,我们预设了一个名称为rotate动画规则,从旋转角度为0度旋转角度360度,也就是旋转一圈。

然后使用我们的css属性animation,我们先来看一下MDN上对animation属性的介绍,

developer.mozilla.org/zh-CN/docs/…

这里给我们介绍了animation是个复合属性,他所包含的属性有这些

animation-name 动画的名字,也就是我们预设的动画规则的名称
animation-duration 完成一个动画所需要的时间
animation-timing-function 动画节奏,它支持的值比较灵活,这里简单介绍几种,如果想详细了解的可以看一下mdn上对它的详细介绍

developer.mozilla.org/zh-CN/docs/…

  • linear 从头到尾的速度是相同的
  • ease 从低速开始,然后加快,在结束前变慢
  • ease-in 从低速开始
  • ease-out 从低速结束
  • ease-in-out 从低速开始和结束
  • ...

    animation-delay 延迟多久开始动画
animation-iteration-count 动画执行的次数或者周期,当参数值为 infinite 时则表示无限循环
animation-direction 动画运行的方向,他有这些值
animation-fill-mode 动画执行之前和之后的样式
animation-play-state 控制动画运行状态

最终我们需要给img标签添加animation属性就可以实现最开始的动画,更多动画效果需要大家来探索

animation: rotate 3s infinite linear;