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


Posted in HTML / CSS onApril 11, 2014

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

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

接下来我们来分析一下这款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
});

源码打包下载地址:http://xiazai.3water.com/201403/tools/css3jdt.rar

HTML / CSS 相关文章推荐
CSS3 三维变形实现立体方块特效源码
Dec 15 HTML / CSS
CSS3中Transform动画属性用法详解
Jul 04 HTML / CSS
CSS3 translate导致字体模糊的实例代码
Aug 30 HTML / CSS
css3绘制天猫logo实现代码
Nov 06 HTML / CSS
css3类选择器之结合元素选择器和多类选择器用法
Mar 09 HTML / CSS
html5 button autofocus 属性介绍及应用
Jan 04 HTML / CSS
使用canvas绘制贝塞尔曲线
Dec 17 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
May 11 HTML / CSS
html5 figure和figcaption的使用方法
Sep 10 HTML / CSS
处理textarea中的换行和空格
Dec 12 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 HTML / CSS
CSS 实现角标效果的完整代码
Jun 28 HTML / CSS
css3发光搜索表单分享
Apr 11 #HTML / CSS
用css3实现当鼠标移进去时当前亮其他变灰效果
Apr 08 #HTML / CSS
css3的图形3d翻转效果应用示例
Apr 08 #HTML / CSS
css3 线性渐变和径向渐变示例附图
Apr 08 #HTML / CSS
使用before和:after伪类制作css3圆形按钮
Apr 08 #HTML / CSS
使用css3制作登录表单的步骤
Apr 07 #HTML / CSS
纯CSS实现聊天框小尖角、气泡效果
Apr 04 #HTML / CSS
You might like
用PHP制作静态网站的模板框架(四)
2006/10/09 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP静态文件生成类实例
2014/11/29 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
Python多线程和队列操作实例
2015/06/21 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
详解python中的模块及包导入
2019/08/30 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
python中get和post有什么区别
2020/06/19 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
给老婆的婚前保证书
2014/02/01 职场文书
优质服务活动实施方案
2014/05/02 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫