CSS - 使用纯css实现一个转圈loading加载效果(附样例)
作者:hangge | 2021-12-17 08:13
转圈圈的 loader 在许多系统中都十分常见,这个无需借助 js 或者第三方库,使用纯 CSS 就可以实现。其原理类似我之前写的文章(点击查看),绘制一个圆圈然后添加旋转动画效果即可。不同的是我们需要将其中一条边设置成不同的颜色,下面通过样例进行演示。
(2)样例代码

(2)样例代码

1,简单样式
(1)效果图
(2)样例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
#loader {
border: 5px solid #f3f3f3;
border-top: 5px solid #555;
border-radius: 50%;
width: 50px;
height: 50px;
display: inline-block;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div id="loader"></div>
</body>
</html>
2,使用多种颜色的 loader
(1)效果图
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
#loader1 {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border-radius: 50%;
width: 120px;
height: 120px;
display: inline-block;
animation: spin 2s linear infinite;
}
#loader2 {
border: 16px solid #f3f3f3;
border-top: 16px solid #3498db;
border-bottom: 16px solid #3498db;
border-radius: 50%;
width: 120px;
height: 120px;
display: inline-block;
animation: spin 2s linear infinite;
}
#loader3 {
border-top: 16px solid blue;
border-right: 16px solid green;
border-bottom: 16px solid red;
border-left: 16px solid pink;
border-radius: 50%;
width: 120px;
height: 120px;
display: inline-block;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div id="loader1"></div>
<div id="loader2"></div>
<div id="loader3"></div>
</body>
</html>
3,带图标、文字的 loader
(1)效果图

(2)样例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style media="screen">
.spinWrap {
width: 150px;
height: 200px;
position: fixed;
top: 42%;
left: 50%;
margin-left: -75px;
margin-top: -100px;
}
.spinnerImage {
height: 50px;
width: 50px;
position: absolute;
top: 0;
left: 50%;
opacity: 1;
filter: alpha(opacity=100);
margin: 38px 0 0 -25px;
background:url(icon.png) no-repeat;
}
.loader {
position : absolute;
left : 50%;
margin-left : -65px;
border: 5px solid #cbcbca;
border-top: 5px solid #2380be;
border-radius: 50%;
width: 120px;
height: 120px;
display: inline-block;
animation: spin 0.7s linear infinite;
}
.loadingMessage {
box-sizing: border-box;
width: 100%;
margin-top: 145px;
text-align: center;
z-index: 100;
outline: none;
color: #686565;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="spinWrap">
<div class="spinnerImage"></div>
<div class="loader"></div>
<div class="loadingMessage">权限验证中...</div>
</div>
</body>
</html>
全部评论(0)