前言
使用css3实现loading等待效果。
实现过程
1.步骤
loading效果实现步骤:
1、先制作两组正方区域的四个小圆(边框圆角化),分别放在区域的四个角(绝对定位实现)
2、两组小圆重合(绝对定位实现)
3、一组小圆旋转45度,8个小圆形成一个大圆
4、小圆和整组都动起来(动画延迟和图形缩放实现)
2.代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>css3动画实现loading效果</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.circlebox{
width: 50px;
height: 50px;
/* 将两组区域组合为一个 */
position: absolute;
left: 50%;
top: 50%;
}
.circlebox p{
width: 15px;
height: 15px;
background-color: #7195B7;
position: absolute; /* 绝对定位后,p标签就脱离了文档流,可设置宽高 */
border-radius: 50%; /* 边框圆角化 */
animation: move 1.5s infinite linear; /*图形缩放效果*/
}
.circlebox p:nth-of-type(1){
left: 0;
top: 0;
}
.circlebox p:nth-of-type(2){
right: 0;
top: 0;
}
.circlebox p:nth-of-type(3){
right: 0;
bottom: 0;
}
.circlebox p:nth-of-type(4){
left: 0;
bottom: 0;
}
.circlebox:nth-child(2){
/* 第二组元素旋转45度,两组小圆形成大圆 */
transform: rotate(45deg);
}
/* 缩放动画 */
@keyframes move{
0%{
transform: scale(0);
}
50%{
transform: scale(1);
}
100%{
transform: scale(0);
}
}
.circlebox:nth-of-type(1) p:nth-of-type(1){
/* 延迟动画,负值越小,就越早播放 */
animation-delay: -0.1s;
}
.circlebox:nth-of-type(2) p:nth-of-type(1){
animation-delay: -0.3s;
}
.circlebox:nth-of-type(1) p:nth-of-type(2){
animation-delay: -0.5s;
}
.circlebox:nth-of-type(2) p:nth-of-type(2){
animation-delay: -0.7s;
}
.circlebox:nth-of-type(1) p:nth-of-type(3){
animation-delay: -0.9s;
}
.circlebox:nth-of-type(2) p:nth-of-type(3){
animation-delay: -1.1s;
}
.circlebox:nth-of-type(1) p:nth-of-type(4){
animation-delay: -1.2s;
}
.circlebox:nth-of-type(2) p:nth-of-type(4){
animation-delay: -1.4s;
}
</style>
</head>
<body>
<div class="circlebox">
<p></p>
<p></p>
<p></p>
<p></p>
</div>
<div class="circlebox">
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</body>
</html>