手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >可以随进度显示不同颜色的css3进度条分享
可以随进度显示不同颜色的css3进度条分享
摘要:一款进度条,它的外观是一条直线,末端有个小球,在进度变化时可以显示数字百分比,更可以用不同颜色来表示当前进度的状态。来看看效果图。接下来我们...

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

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

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

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

<div id="wrapper">

<div>

<div>0</div>

<span></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

});

源码打包下载地址:http://xiazai.jb51.net/201403/tools/css3jdt.rar

【可以随进度显示不同颜色的css3进度条分享】相关文章:

三个很特别的CSS小技巧分享

CSS上下文选择符实现基于位置为HTML元素添加样式

发现两个有趣的CSS3动画效果

关于几个常见的css字体设定问题探讨

css代码兼容浏览器技巧总结

span div p 之间的不同区别

CSS应用基础教程(3) 应用补充

边框(border)边距(margin)和间隙(padding)属性的区别

CSS样式表一席谈之CSS快速入门

css让容器水平垂直居中的7种方式

精品推荐
分类导航