在学习html5 和css3的时候,用到了动画效果animation。
具体步骤是:
定义一个大盒子box,box-content 代表小球,circle代表小洞。。
<div class="box">
<div class="box-content left"></div>
<div class="circle left1"></div>
</div>
2. 设置外层盒子的样式,采用display属性,以列的形式进行排序。。
内部元素位置为底部对齐
.box {
width: 100px;
height: 300px;
/* border: 1px solid #000; */
margin:0 auto;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
}
3. 设置小球样式,宽高各为50px,边框弧度为百分之50,背景颜色为渐变色,
.box-content {
width: 50px;
height: 50px;
/* border: 1px solid #000; */
border-radius: 50%;
/* margin: 20px auto; */
background: linear-gradient(0deg,blue,red);
box-shadow: 0 0 5px rgba(0,0,0,0.5);
animation: animal 2s infinite alternate linear;
}
4.设置circle样式,
.circle{
width: 50px;
height: 10px;
background-color: rgba(0,0,0,0.5);
border-radius: 50%;
animation: animal1 2s infinite alternate linear;
}
5.设置动画效果,
/* 小洞的动画效果 */
@keyframes animal1 {
0% {
transform: scale(1.2);
}
100% {
transform: scale(0.5);
}
}
/*小球的动画效果 */
@keyframes animal {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-250px);
}
}
效果如下:
全部代码如下:
<!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;
}
body {
width: 100vw;
height: 100vh;
display: flex;
/* justify-content: flex-end; */
justify-content: center;
align-items: center;
}
.box {
width: 100px;
height: 300px;
/* border: 1px solid #000; */
margin:0 auto;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
}
.box-content {
width: 50px;
height: 50px;
/* border: 1px solid #000; */
border-radius: 50%;
/* margin: 20px auto; */
background: linear-gradient(0deg,blue,red);
box-shadow: 0 0 5px rgba(0,0,0,0.5);
animation: animal 2s infinite alternate linear;
}
.box .left {
background: linear-gradient(0deg,rgb(0, 255, 170),rgb(0, 162, 255));
animation-duration: 800ms;
}
.box .left1 {
animation-duration: 800ms;
}
.box .right {
background: linear-gradient(0deg,rgb(208, 255, 0),rgb(255, 0, 230));
animation-duration: 1s;
/* animation-delay: 50ms; */
}
.box .right1 {
animation-duration: 1s;
}
.circle{
width: 50px;
height: 10px;
background-color: rgba(0,0,0,0.5);
border-radius: 50%;
animation: animal1 2s infinite alternate linear;
}
/* 小洞的动画效果 */
@keyframes animal1 {
0% {
transform: scale(1.2);
}
100% {
transform: scale(0.5);
}
}
/*小球的动画效果 */
@keyframes animal {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-250px);
}
}
</style>
</head>
<body>
<div class="box">
<div class="box-content left"></div>
<div class="circle left1"></div>
</div>
<div class="box">
<div class="box-content"></div>
<div class="circle"></div>
</div>
<div class="box">
<div class="box-content right"></div>
<div class="circle right1"></div>
</div>
</body>
</html>