前端杂谈 · Web

H5C3页面心形加载动画

小编 · 3月29日 · 2020年

前言

当web服务器压力过大的时候,通过Ajax异步加载页面数据,就会变得非常缓慢。这时候就需要给前端页面显示一个loading动画,来增加用户的体验。

设计

使用C3动画来绘制多彩呼吸效果,整体心状图形根据一组彩色圆点改变transform: translateY()属性实现,注意控制好每个圆点动画的时间段。父盒子div高度使用vh单位 ,实现动态高度百分比布局,所以不需要写一行的JS代码。背景颜色可以根据需求改成透明色 。在Ajax加载数据的时候,显示这组元素;加载完成的时候,隐藏这组元素就可以了。

H5C3页面心形加载动画-字节智造

源码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
 
<style>
*{
padding: 0;
margin: 0;
list-style: none;
}
#he{
/* width: 100%; */
display: flex;/*弹性盒模型*/
justify-content: center;/*主轴方向居中显示*/
align-items: center;/*交叉轴方向居中显示*/
height: 100vh;
background-color: #232e6d;/*根据需求改成透明背景色*/
}
ul{
height: 200px;
}
li{
float: left;
width: 20px;
height: 20px;
border-radius: 20px;
margin-right: 10px;
}
li:nth-child(1){
background-color: #f62e74;
animation: love1 4s infinite;
}
li:nth-child(2){
background-color: #f45330;
animation: love2 4s infinite;
animation-delay: 0.15s;
}
li:nth-child(3){
background-color: #ffc883;
animation: love3 4s infinite;
animation-delay: 0.3s;
}
li:nth-child(4){
background-color: #30d268;
animation: love4 4s infinite;
animation-delay: 0.45s;
}
li:nth-child(5){
background-color: #006cb4;
animation: love5 4s infinite;
animation-delay: 0.6s;
}
li:nth-child(6){
background-color: #784697;
animation: love4 4s infinite;
animation-delay: 0.75s;
}
li:nth-child(7){
background-color: #ffc883;
animation: love3 4s infinite;
animation-delay: 0.9s;
}
li:nth-child(8){
background-color: #f45330;
animation: love2 4s infinite;
animation-delay: 1.05s;
}
li:nth-child(9){
background-color: #f62e74;
animation: love1 4s infinite;
animation-delay: 1.2s;
}
@keyframes love1{
30%,50%{height: 60px; transform: translateY(-30px);}
75%,100%{height: 20px; transform: translateY(0);}
}
@keyframes love2{
30%,50%{height: 125px; transform: translateY(-62.5px);}
75%,100%{height: 20px; transform: translateY(0);}
 
}
@keyframes love3{
30%,50%{height: 160px; transform: translateY(-75px);}
75%,100%{height: 20px; transform: translateY(0);}
}
@keyframes love4{
30%,50%{height: 180px; transform: translateY(-60px);}
75%,100%{height: 20px; transform: translateY(0);}
}
@keyframes love5{
30%,50%{height: 190px; transform: translateY(-45px);}
75%,100%{height: 20px; transform: translateY(0);}
}
</style>
 
</head>
<body>
 
<div id="he">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
 
</body>
</html>
2 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. Bit2020-3-30 · 12:01

    你好,请问下这是什么评论插件啊