📜  @keyframes - CSS (1)

📅  最后修改于: 2023-12-03 15:13:11.719000             🧑  作者: Mango

使用 @keyframes 创造动画效果

CSS3 的 @keyframes 规则提供了一种创建动画的方法,通过定义一个或多个关键帧来描述动画的属性变化。本文将介绍如何使用 @keyframes 规则来创建动画效果。

@keyframes 规则的语法

@keyframes 规则的语法格式如下:

@keyframes animation-name {
  from { /* 定义起始状态 */ }
  to { /* 定义结束状态 */ }
}

其中 animation-name 是动画名称,可以自定义。from 和 to 分别表示动画的起始状态和结束状态,中间可以添加任意数量的关键帧,用百分比值表示动画进程。

创建简单动画

下面是使用 @keyframes 规则创建简单动画的示例代码:

.box {
  animation: mymove 2s infinite;
}

@keyframes mymove {
  from {left: 0px;}
  to {left: 200px;}
}

该代码创建了一个名为 mymove 的动画,使 .box 元素向右移动。其中 animation 属性用于指定动画名称、动画执行时间和循环次数。可以添加多个关键帧,每个关键帧表示动画执行进程的一个状态。

使用关键帧

关键帧定义动画的每个状态,可以通过设置动画执行进程的百分比值来定义关键帧。下面是使用关键帧创建动画的示例代码:

.box {
  animation: mymove 2s infinite;
}

@keyframes mymove {
  0% {left: 0px;}
  50% {left: 200px;}
  100% {left: 0px;}
}

该代码创建了一个名为 mymove 的动画,使 .box 元素来回移动。其中关键帧分别定义了动画执行进程为 0%、50% 和 100% 时 .box 元素的位置。

指定动画类型

animation 属性可以用于指定动画类型,包括线性、贝塞尔曲线、步进等多种类型。下面是指定动画类型创建动画的示例代码:

.box1 {
  animation: mymove1 2s linear infinite;
}

.box2 {
  animation: mymove2 2s cubic-bezier(0.25,0.2,0.5,1) infinite;
}

.box3 {
  animation: mymove3 2s steps(4) infinite;
}

@keyframes mymove1 {
  from {left: 0px;}
  to {left: 200px;}
}

@keyframes mymove2 {
  from {left: 0px;}
  to {left: 200px;}
}

@keyframes mymove3 {
  from {left: 0px;}
  to {left: 200px;}
}

该代码创建了三个不同类型的动画,分别对应 .box1、.box2、.box3 元素。其中 cubic-bezier() 可以指定贝塞尔曲线,steps() 可以指定步进动画。根据需要选择合适的动画类型,可以创造更加丰富的动画效果。

总结

本文介绍了使用 @keyframes 规则创建动画效果的基础知识,包括 @keyframes 规则的语法、创建简单动画、使用关键帧和指定动画类型。通过掌握这些基础知识,可以使用 @keyframes 规则创造炫酷动画效果。