动画和过渡类似,都是可以实现一些动态的效果,
不同的是过渡需要在某个属性的发生变化时触发
动画可以自动出发动态效果
设置动画效果,必须要先设置一个关键帧,关键帧就设置了动画执行的每一个步骤
<!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>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.box1{
width: 800px;
height: 800px;
background-color: #fff;
overflow: hidden;
}
.box1 div{
width: 100px;
height: 100px;
margin-bottom: 100px;
margin-left: 0;
}
.box2{
background-color:blue;
/* 设置box2的动画效果 */
/* animation-name 要对当前元素生效的关键帧的名字*/
animation-name: test;
/*animation-duration 动画的执行时间 */
animation-duration : 5s;
/* animation-delay: 动画延时 */
animation-delay: 2s;
/* animation-timing-function 动画运动样式 */
animation-timing-function: ease-in-out;
/* animation-iteration-count 动画执行次数 */
animation-iteration-count: infinite;
}
@keyframes test{
/* 表from示动画结束的位置 也可以使用 0% */
from{
margin-left: 0px;
}
/* to 表示动画结束的位置 也可以使用 100% */
to{
margin-left: 700px;
}
}
</style>
</head>
<body>
<div class="box1">
<div class="box2"></div>
</div>
</body>
</html>
执行状态
animation-play-state: paused;
设置动画的执行状态
可选值:
running 默认值 动画执行
paused 动画暂停
填充模式
animation-fill-mode: both;
动画的填充模式
可选值:
none (默认值 动画执行完毕元素回到原来位置)
forwards (动画执行完毕元素会停止在动画结束的位置)
backwards (动画延时等待时,元素会处于开始位置)
both (结合了forwards和backwards)
简写:
animation: test 2s 1s alternate;