超赞的CSS3进度条 可以随进度显示不同颜色
2014-04-10 09:45
519 查看
现在的WEB已经不是以前的WEB了,传输更大的数据量,有着更加复杂的计算,这就需要利用进度条来提高用户体验,必要时可以让用户耐心等待,不至于因操作卡了而关掉你的网页。前几天我在网上看到一款和一般进度条不太一样的玩意,它的外观是一条直线,末端有个小球,在进度变化时可以显示数字百分比,更可以用不同颜色来表示当前进度的状态。来看看效果图。
![](http://images.cnitblog.com/i/151997/201404/100930549039413.jpg)
一看进度条外观,还不错吧。
同时,我们也可以在这里看到进度条的DEMO演示
接下来我们来分析一下这款HTML5进度条的实现源码,篇幅有限,我们只挑核心的代码来说。
HTML代码很简单,构造一个进度条容器和数字百分比容器:
首先我们来对进度条的容器进行样式渲染,利用CSS3的渐变属性来实现不同进度变换颜色的效果:
接下来是末端小圆球的样式:
这里也是利用的CSS3的渐变属性。
然后是数字百分比的样式属性,这里随着进度变化,数字百分比的颜色也会发生变化。、
最后,我们再来看看JS代码,其实js要完成的工作非常简单,只需要将CSS3渲染好的进度条动起来就好,看代码:
初次写博客,可以代码分析的不是很好,有什么问题可以留言指正,不过,这款进度条个人真的很喜欢,老外的创意真是无限啊。
![](http://images.cnitblog.com/i/151997/201404/100930549039413.jpg)
一看进度条外观,还不错吧。
同时,我们也可以在这里看到进度条的DEMO演示
接下来我们来分析一下这款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 });
初次写博客,可以代码分析的不是很好,有什么问题可以留言指正,不过,这款进度条个人真的很喜欢,老外的创意真是无限啊。
相关文章推荐
- 超赞的CSS3进度条 可以随进度显示不同颜色
- 可以随进度显示不同颜色的css3进度条分享
- 小结一下c#WinForm调用sql2000,将老表数据通过与新表数据比较,不同的添加进去,并使用进度条显示进度的教训与经验
- HTML5/CSS3超酷进度条 不同进度多种颜色
- 在arcgis server上发布可以显示不同颜色的交通路况信息。
- Struts2+JQuery.uploadify插件实现带进度的多文件上传示例【也可以设置去掉进度条的显示】
- 一个显示等级进度的控件,可以自定义等级值、颜色、游标等。
- wpf slider 进度条的样式模板,带有进度颜色显示
- wpf slider进度条的样式模板,带有进度颜色显示
- HTML route点击不同按钮,显示不同内容,可以改变按钮背景颜色
- 渲染自定义格式字符串的UILabel(同一个lable的不同文字可以显示不同的颜色和字体)
- c# progressBar进度条改变颜色及显示进度数字
- label 中可以显示不同字体,不同颜色 的text
- wpf slider进度条的样式模板,带有进度颜色显示
- T端根据玩家职业来显示不同颜色的角色名字的C++代码
- iOS 在UILabel显示不同的字体和颜色(转)
- OC_字符串显示不同颜色
- iOS 在UILabel显示不同的字体和颜色
- 使用ASP.NETAtlas编写显示真实进度的ProgressBar(进度条)控件
- 自己对“用不同颜色显示表格奇偶行的例子”扩充了用不同颜色显示鼠标单击的行