当前位置: 移动技术网 > IT编程>网页制作>CSS > 可以随进度显示不同颜色的css3进度条分享

可以随进度显示不同颜色的css3进度条分享

2019年07月25日  | 移动技术网IT编程  | 我要评论

一款进度条,它的外观是一条直线,末端有个小球,在进度变化时可以显示数字百分比,更可以用不同颜色来表示当前进度的状态。来看看效果图。



接下来我们来分析一下这款html5进度条的实现源码,篇幅有限,我们只挑核心的代码来说。

html代码很简单,构造一个进度条容器和数字百分比容器:


复制代码
代码如下:

<div id="wrapper">
<div class="loader-container">
<div class="meter">0</div>
<span class="runner"></span>
</div>
</div>

首先我们来对进度条的容器进行样式渲染,利用css3的渐变属性来实现不同进度变换颜色的效果:

复制代码
代码如下:

.loader-container {
height: 6px;
width: 600px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -3px;
margin-left: -300px;
background-color: transparent;
background-image: -webkit-linear-gradient(left, #5bd8ff, #ff0000);
background-image: -moz-linear-gradient(left, #5bd8ff, #ff0000);
background-image: -o-linear-gradient(left, #5bd8ff, #ff0000);
background-image: -ms-linear-gradient(left, #5bd8ff, #ff0000);
background-image: linear-gradient(left, #5bd8ff, #ff0000);
box-shadow: inset 0 -2px 2px rgba(0, 0, 0, 0.4);
border-radius: 3px 0 0 3px;
}
.loader-container:after {
content: "";
display: block;
position: absolute;
right: 0;
top: 50%;
width: 1em;
height: 1em;
border-radius: 50%;
margin-top: -0.5em;
margin-right: -1em;
background-image: -webkit-linear-gradient(top, #000000, #212121);
background-image: -moz-linear-gradient(top, #000000, #212121);
background-image: -o-linear-gradient(top, #000000, #212121);
background-image: -ms-linear-gradient(top, #000000, #212121);
background-image: linear-gradient(top, #000000, #212121);
}

接下来是末端小圆球的样式:

复制代码
代码如下:

.loader-container.done:after {
background: red;
}
.run .runner {
content: "";
position: absolute;
right: 0;
height: 100%;
width: 0%;
background-color: transparent;
background-image: -webkit-linear-gradient(top, #000000, #212121);
background-image: -moz-linear-gradient(top, #000000, #212121);
background-image: -o-linear-gradient(top, #000000, #212121);
background-image: -ms-linear-gradient(top, #000000, #212121);
background-image: linear-gradient(top, #000000, #212121);
animation: loader 10s linear;
}

这里也是利用的css3的渐变属性。

然后是数字百分比的样式属性,这里随着进度变化,数字百分比的颜色也会发生变化。


复制代码
代码如下:

.meter {
position: absolute;
top: 0;
right: 0;
font-size: 2em;
margin-top: .3em;
color: #ff0000;
animation: meter 10s linear;
text-shadow: 0 -1px 0 #333333;
}
.meter:after {
content: "%";
}

最后,我们再来看看js代码,其实js要完成的工作非常简单,只需要将css3渲染好的进度条动起来就好,看代码:

复制代码
代码如下:

var loader = function () {
var loader = document.queryselector('.loader-container'),
meter = document.queryselector('.meter'),
k, i = 1,
counter = function () {
if (i <= 100) {
meter.innerhtml = i.tostring();
i++;
} else {
window.clearinterval(k);
}
};
return {
init: function (options) {
options = options || {};
var time = options.time ? options.time : 0,
interval = time/100;
loader.classlist.add('run');
k = window.setinterval(counter, interval);
settimeout(function () {
loader.classlist.add('done');
}, time);
},
}
}();
loader.init({
// if you have changed the @time in less, update this number to the corresponding value. measured in miliseconds.
time: 10000
});


源码打包下载地址:

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网