![]()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS3实现加载数据动画</title>
<style type="text/css">
.box{
width: 100%;
padding: 3%;
/*设置margin与padding的值包含在所设置的宽高之中*/
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
/*设置隐藏移除部分*/
overflow: hidden;
}
.box .loader{
width: 30%;
float: left;
height: 200px;
margin-right: 3%;
border: 1px #cccccc solid;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
/*设置对象显示为伸缩盒(弹性盒)模型*/
display: flex;
/*设置弹性盒子元素在侧轴(纵轴)方向上的对齐方式*/
align-items: center;
/*设置弹性盒子元素在主轴(横轴)方向上的对齐方式*/
justify-content: center;
}
.loading-1{
width: 35px;
height: 35px;
position: relative;
}
.loading-1 i{
display: block;
width: 100%;
height: 100%;
border-radius: 50%;
background: linear-gradient(transparent 0%, transparent 70%, #333333 30%, #333333 100%);
background: -webkit-linear-gradient(transparent 0%, transparent 70%, #333333 30%, #333333 100%);
background: -moz-linear-gradient(transparent 0%, transparent 70%, #333333 30%, #333333 100%);
background: -ms-linear-gradient(transparent 0%, transparent 70%, #333333 30%, #333333 100%);
background: -o-linear-gradient(transparent 0%, transparent 70%, #333333 30%, #333333 100%);
-webkit-animation: loading-1 .5s linear infinite;
-moz-animation: loading-1 .5s linear infinite;
-o-animation: loading-1 .5s linear infinite;
animation: loading-1 .5s linear infinite;
}
@-webkit-keyframes loading-1{
0%{ transform: rotate(0deg); }
50%{ transform: rotate(180deg); }
100%{ transform: rotate(360deg); }
}
@-moz-keyframes loading-1{
0%{ transform: rotate(0deg); }
50%{ transform: rotate(180deg); }
100%{ transform: rotate(360deg); }
}
@-o-keyframes loading-1{
0%{ transform: rotate(0deg); }
50%{ transform: rotate(180deg); }
100%{ transform: rotate(360deg); }
}
@keyframes loading-1{
0%{ transform: rotate(0deg); }
50%{ transform: rotate(180deg); }
100%{ transform: rotate(360deg); }
}
.loading-2 i{
/*设置为内联元素,可以使元素在同一行显示*/
display: inline-block;
width: 4px;
height: 35px;
border-radius: 2px;
margin: 0 2px;
background-color: #333333;
}
.loading-2 i:nth-child(1){
-webkit-animation: loading-2 1s linear .1s infinite;
-moz-animation: loading-2 1s linear .1s infinite;
-o-animation: loading-2 1s linear .1s infinite;
animation: loading-2 1s linear .1s infinite;
}
.loading-2 i:nth-child(2){
-webkit-animation: loading-2 1s linear .2s infinite;
-moz-animation: loading-2 1s linear .2s infinite;
-o-animation: loading-2 1s linear .2s infinite;
animation: loading-2 1s linear .2s infinite;
}
.loading-2 i:nth-child(3){
-webkit-animation: loading-2 1s linear .3s infinite;
-moz-animation: loading-2 1s linear .3s infinite;
-o-animation: loading-2 1s linear .3s infinite;
animation: loading-2 1s linear .3s infinite;
}
.loading-2 i:nth-child(4){
-webkit-animation: loading-2 1s linear .4s infinite;
-moz-animation: loading-2 1s linear .4s infinite;
-o-animation: loading-2 1s linear .4s infinite;
animation: loading-2 1s linear .4s infinite;
}
.loading-2 i:nth-child(5){
-webkit-animation: loading-2 1s linear .5s infinite;
-moz-animation: loading-2 1s linear .5s infinite;
-o-animation: loading-2 1s linear .5s infinite;
animation: loading-2 1s linear .5s infinite;
}
@-webkit-keyframes loading-2 {
0%{ transform: scaleY(1); }
50%{ transform: scaleY(.4); }
100%{ transform: scaleY(1); }
}
@-moz-keyframes loading-2 {
0%{ transform: scaleY(1); }
50%{ transform: scaleY(.4); }
100%{ transform: scaleY(1); }
}
@-o-keyframes loading-2 {
0%{ transform: scaleY(1); }
50%{ transform: scaleY(.4); }
100%{ transform: scaleY(1); }
}
@keyframes loading-2 {
0%{ transform: scaleY(1); }
50%{ transform: scaleY(.4); }
100%{ transform: scaleY(1); }
}
.loading-3{
position: relative;
}
.loading-3 i{
display: block;
width: 15px;
height: 15px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
background-color: #333333;
position: absolute;
}
.loading-3 i:nth-child(1){
top: 25px;
left: 0;
-webkit-animation: loading-3 1s ease 0s infinite;
-o-animation: loading-3 1s ease 0s infinite;
-moz-animation: loading-3 1s ease 0s infinite;
animation: loading-3 1s ease 0s infinite;
}
.loading-3 i:nth-child(2){
top: 17px;
left: 17px;
/*这里延迟-0.12s是因为在布局时,位置是逆时针,要使动画顺时针变换,则这里需要设置负的延迟时间*/
-webkit-animation: loading-3 1s ease -0.12s infinite;
-o-animation: loading-3 1s ease -0.12s infinite;
-moz-animation: loading-3 1s ease -0.12s infinite;
animation: loading-3 1s ease -0.12s infinite;
}
.loading-3 i:nth-child(3){
top: 0;
left: 25px;
-webkit-animation: loading-3 1s ease -0.24s infinite;
-o-animation: loading-3 1s ease -0.24s infinite;
-moz-animation: loading-3 1s ease -0.24s infinite;
animation: loading-3 1s ease -0.24s infinite;
}
.loading-3 i:nth-child(4){
top: -17px;
left: 17px;
-webkit-animation: loading-3 1s ease -0.36s infinite;
-o-animation: loading-3 1s ease -0.36s infinite;
-moz-animation: loading-3 1s ease -0.36s infinite;
animation: loading-3 1s ease -0.36s infinite;
}
.loading-3 i:nth-child(5){
top: -25px;
left: 0;
-webkit-animation: loading-3 1s ease -0.48s infinite;
-o-animation: loading-3 1s ease -0.48s infinite;
-moz-animation: loading-3 1s ease -0.48s infinite;
animation: loading-3 1s ease -0.48s infinite;
}
.loading-3 i:nth-child(6){
top: -17px;
left: -17px;
-webkit-animation: loading-3 1s ease -0.6s infinite;
-o-animation: loading-3 1s ease -0.6s infinite;
-moz-animation: loading-3 1s ease -0.6s infinite;
animation: loading-3 1s ease -0.6s infinite;
}
.loading-3 i:nth-child(7){
top: 0;
left: -25px;
-webkit-animation: loading-3 1s ease -0.72s infinite;
-o-animation: loading-3 1s ease -0.72s infinite;
-moz-animation: loading-3 1s ease -0.72s infinite;
animation: loading-3 1s ease -0.72s infinite;
}
.loading-3 i:nth-child(8){
top: 17px;
left: -17px;
-webkit-animation: loading-3 1s ease -0.84s infinite;
-o-animation: loading-3 1s ease -0.84s infinite;
-moz-animation: loading-3 1s ease -0.84s infinite;
animation: loading-3 1s ease -0.84s infinite;
}
@-webkit-keyframes loading-3 {
50%{
transform: scale(.4);
/*设置透明度为*/
opacity: .3;
}
100%{
transform: scale(1);
/*设置透明度为*/
opacity: 1;
}
}
@-o-keyframes loading-3 {
50%{
transform: scale(.4);
/*设置透明度为*/
opacity: .3;
}
100%{
transform: scale(1);
/*设置透明度为*/
opacity: 1;
}
}
@-moz-keyframes loading-3 {
50%{
transform: scale(.4);
/*设置透明度为*/
opacity: .3;
}
100%{
transform: scale(1);
/*设置透明度为*/
opacity: 1;
}
}
@keyframes loading-3 {
50%{
transform: scale(.4);
/*设置透明度为*/
opacity: .3;
}
100%{
transform: scale(1);
/*设置透明度为*/
opacity: 1;
}
}
</style>
</head>
<body>
<div class="box">
<div class="loader">
<div class="loading-1"><i></i></div>
</div>
<div class="loader">
<div class="loading-2">
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
</div>
</div>
<div class="loader">
<div class="loading-3">
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
<i></i>
</div>
</div>
</div>
</body>
</html>