动画最大的特点可以不用鼠标触发,自动的,反复的执行某些动画。
动画的定义和调用
<!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>
.box {
width: 300px;
height: 300px;
background-color: pink;
/* 调用动画 animation:动画名 动画执行时间*/
animation: move 5s;
}
/* 定义动画 */
@keyframes move {
/* 开始状态 */
form {
transform: translate(0, 0);
}
/* 结束状态 */
to {
transform: translate(800px, 0);
}
}
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
或者是
<!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>
.box{
width: 300px;
height: 300px;
background-image: linear-gradient(pink,blue);
border-radius: 50%;
/* 调用动画 animation:动画名 动画执行时间 动画速度(linear匀速) 动画循环次数infinite(无限循环) 动画方向alternate forwards(停留在最后一帧)*/
animation: move 30s linear alternate infinite ;
}
/* 定义动画 */
@keyframes move {
0%{
transform: translate(0, 0);
}
20%{
transform: translate(800px, 0) rotateZ(1turn);
}
40%{
transform: translate(800px, 400px) rotateZ(1.1turn);
}
60%{
transform: translate(0, 400px) rotateZ(1.5turn);
}
100%{
transform: translate(0, 0) rotateZ(2turn);
}
}
/* 注意点:动画可以写多个状态 多个状态通过百分比描述 状态相同只会执行一次 */
</style>
</head>
<body>
<div class="box">
</div>
</body>
</html>
动画的属性:
-
动画名字参照css类选择器命名
-
动画时长和延迟时间别忘了带单位 s
-
infinate 无限循环动画(重复次数)
-
alternate 为反向 就是左右来回执行动画(跑马灯)
-
forwards 动画结束停留在最后一帧状态, 不循环状态使用
-
linear 让动画匀速执行