可以随进度显示不同颜色的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教程(8):CSS3透明度指南
Apr 02 HTML / CSS
CSS3中颜色线性渐变实战
Jul 18 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
Jan 05 HTML / CSS
css3学习系列之移动属性详解
Jul 04 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
Jun 01 HTML / CSS
HTML5 video播放器全屏(fullScreen)方法实例
Apr 24 HTML / CSS
canvas 下载二维码和图片加水印的方法
Mar 21 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
Sep 19 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
Jul 10 HTML / CSS
浅谈移动端中的视口(viewport)的具体使用
Apr 13 HTML / CSS
如何在CSS中绘制曲线图形及展示动画
May 24 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
浅析php中jsonp的跨域实例
2013/06/21 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
使用php的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
php cli模式下获取参数的方法
2017/05/05 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python计算n的阶乘的方法代码
2019/10/25 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Python新手如何理解循环加载模块
2020/05/29 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
倡议书格式范文
2014/04/14 职场文书
期末复习计划
2015/01/19 职场文书
2015年话务员工作总结
2015/04/29 职场文书