在学习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>
复制