2017年12月13日
可以随时停止进度,需要计算时间清除定时器
.loading .wrap,
.loading .circle,
.loading .percent {
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
}
.loading .wrap {
top: 150px;
left: 50%;
margin-left: -100px;
background-color: #ccc;
}
.loading .circle {
box-sizing: border-box;
border: 10px solid #ccc;
clip: rect(0, 200px, 200px, 100px);
}
.loading .clip-auto {
clip: rect(auto, auto, auto, auto);
}
.loading .percent {
box-sizing: border-box;
top: -10px;
left: -10px;
}
.loading .left {
transition: transform ease;
border: 10px solid #51abe5;
clip: rect(0, 100px, 200px, 0);
}
.loading .right {
border: 10px solid #51abe5;
clip: rect(0, 200px, 200px, 100px);
}
.loading .nothing {
width: 0;
}
.loading .num {
z-index: 1;
position: absolute;
left: 10px;
top: 10px;
width: 180px;
height: 180px;
color: #fff;
line-height: 180px;
text-align: center;
font-size: 40px;
border-radius: 50%;
/*background-color: #fff;*/
background: #2b9cdb;
box-sizing: border-box;
}
<div class="wrap">
<div class="circle">
<div class="percent left"></div>
<div class="percent right nothing"></div>
</div>
<div class="num"><span class="export">0</span>%</div>
</div>
var percent = 0; //初始化百分比
var rcent = 100; //需要显示的百分比
var loading = setInterval(function() {
if(percent > 100) {
percent = 0;
$('.circle').removeClass('clip-auto');
$('.right').addClass('nothing');
} else if(percent > 50) {
$('.circle').addClass('clip-auto');
$('.right').removeClass('nothing');
}
$('.left').css("-webkit-transform", "rotate(" + (18 / 5) * percent + "deg)");
$('.export').text(percent);
if(percent == rcent) {
//加载完成
clearInterval(loading);
} else {
percent++;
}
}, 50);