文章目录
- 一、动画序列
- 二、代码示例 - 使用 from 和 to 定义动画序列
- 三、代码示例 - 定义多个动画节点
一、动画序列
定义动画时 , 需要设置动画序列 , 下面的 0%
和 100%
设置的是 动画 在 运行到某个 百分比节点时 的 标签元素样式状态 ;
@keyframes element-move {
0% { transform: translateX(500px); }
100% { transform: translateX(0); }
}
动画序列 规则 :
0%
是 动画 的 开始状态 ;100%
是 动画 的 终止状态 ;- 使用 百分比 可以 定义 动画样式 变化 的节点 , 也可以使用
from
和to
关键字 ; - 动画 的 初始状态 和 终止状态 的 样式个数 是 任意多个 ;
- 动画 的 执行次数 是 任意多次 ;
二、代码示例 - 使用 from 和 to 定义动画序列
使用 from
和 to
关键字 定义 动画序列 , 等价于 使用 0%
和 100%
定义的 动画序列 ;
代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>定义动画</title>
<style>
div {
/* 设置动画的主要作用元素 */
width: 200px;
height: 200px;
background-color: pink;
/* 设置动画相关样式 */
animation-name: element-move;
animation-duration: 1s;
}
@keyframes element-move {
/* 定义动画 */
from {
transform: translateX(500px);
}
to {
transform: translateX(0);
}
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
执行结果 :
- 刚进入页面后 , div 盒子模型出现在右侧 ;
- 1 秒内 , 上述盒子模型会自动走到最左侧 ;
三、代码示例 - 定义多个动画节点
使用 0%
, 25%
, 50%
, 75%
, 100%
定义的 动画序列 中的 多个 动画节点 ;
代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>定义动画</title>
<style>
div {
/* 设置动画的主要作用元素 */
width: 200px;
height: 200px;
background-color: pink;
/* 设置动画相关样式 */
animation-name: element-move;
animation-duration: 1s;
}
@keyframes element-move {
/* 定义动画 */
0% {
/* 第一状态 / 默认状态 在左上角 */
/* 没有任何变化 也可以空着 */
transform: translate(0, 0);
}
25% {
/* 第二状态 走到右上角 */
transform: translate(400px, 0);
}
50% {
/* 第三状态 走到右下角 */
transform: translate(400px, 200px);
}
75% {
/* 第四状态 走到左下角 */
transform: translate(0, 200px);
}
100% {
/* 回到初始状态 */
/* 第五状态 走到左上角 */
transform: translate(0, 0);
}
}
</style>
</head>
<body>
<div>
</div>
</body>
</html>
执行效果 : 执行后 , 盒子模型 绕圈走 ;