今天给大家带来一个比较炫的进度条,进度条在一耗时操作上给用户一个比较好的体验,不会让用户觉得在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用;一般用于下载任务,删除大量任务,网页加载等;如果有使用html5为手机布局的,也可以用于手机中~

效果图:

1、html结构:

  1. <div id="loadBar01" class="loadBar">
  2. <div>
  3. <span class="percent">
  4. <i></i>
  5. </span>
  6. </div>
  7. <span class="percentNum">0%</span>
  8. </div>

简单分析下:

div.loadBar代表整个进度条

div.loadBar div 设置了圆角表框 ,div.loadBar div  span 为进度 (动态改变宽度),  div.loadBar div  span i 为进度填充背景色(即width=100%)

HTML的结构,大家可以自己设计,只要合理,都没有问题~

2、CSS:

  1. body
  2. {
  3. font-family: Thoma, Microsoft YaHei, 'Lato', Calibri, Arial, sans-serif;
  4. }
  5.  
  6. #content
  7. {
  8. margin: 120px auto;
  9. width: 80%;
  10. }
  11.  
  12. .loadBar
  13. {
  14. width: 600px;
  15. height: 30px;
  16. border: 3px solid #212121;
  17. border-radius: 20px;
  18. position: relative;
  19. }
  20.  
  21. .loadBar div
  22. {
  23. width: 100%;
  24. height: 100%;
  25. position: absolute;
  26. top: 0;
  27. left: 0;
  28. }
  29.  
  30. .loadBar div span, .loadBar div i
  31. {
  32. box-shadow: inset 0 -2px 6px rgba(0, 0, 0, .4);
  33. width: 0%;
  34. display: block;
  35. height: 100%;
  36. position: absolute;
  37. top: 0;
  38. left: 0;
  39. border-radius: 20px;
  40. }
  41.  
  42. .loadBar div i
  43. {
  44. width: 100%;
  45. -webkit-animation: move .8s linear infinite;
  46. background: -webkit-linear-gradient(left top, #7ed047 0%, #7ed047 25%, #4ea018 25%, #4ea018 50%, #7ed047 50%, #7ed047 75%, #4ea018 75%, #4ea018 100%);
  47. background-size: 40px 40px;
  48. }
  49.  
  50. .loadBar .percentNum
  51. {
  52. position: absolute;
  53. top: 100%;
  54. right: 10%;
  55. padding: 1px 15px;
  56. border-bottom-left-radius: 16px;
  57. border-bottom-right-radius: 16px;
  58. border: 1px solid #222;
  59. background-color: #222;
  60. color: #fff;
  61.  
  62. }
  63.  
  64. @-webkit-keyframes move
  65. {
  66. 0%
  67. {
  68. background-position: 0 0;
  69. }
  70. 100%
  71. {
  72. background-position: 40px 0;
  73. }
  74. }

此时效果为:

整体布局就是利用position relative和absolute~

比较难的地方就是,渐变条的实现:

我们采用

a、从左上到右下的渐变

b、颜色分别为:0-25% 为#7ed047 , 25%-50% 为#4ea018 , 50%-75%为#7ed047 , 75%-100%为#4ea018

c、背景的大小为40px 40px 这个设置超过高度就行, 越大,条文宽度越宽

分析图:

设置的原理就是上图了,同时可以背景宽度设置越大,条文宽度越大;

3、设置Js,创建LoadBar对象

  1. function LoadingBar(id)
  2. {
  3. this.loadbar = $("#" + id);
  4. this.percentEle = $(".percent", this.loadbar);
  5. this.percentNumEle = $(".percentNum", this.loadbar);
  6. this.max = 100;
  7. this.currentProgress = 0;
  8. }
  9. LoadingBar.prototype = {
  10. constructor: LoadingBar,
  11. setMax: function (maxVal)
  12. {
  13. this.max = maxVal;
  14. },
  15. setProgress: function (val)
  16. {
  17. if (val >= this.max)
  18. {
  19. val = this.max;
  20. }
  21. this.currentProgress = parseInt((val / this.max) * 100) + "%";
  22. this.percentEle.width(this.currentProgress);
  23. this.percentNumEle.text(this.currentProgress);
  24.  
  25. }
  26. };

我们创建了一个LoadBar对象,同时公开了两个方法,一个设置最大进度,一个设置当前进度;比如下载文件最大进度为文件大小,当前进度为已下载文件大小。

4、测试

最后我们测试下我们的代码:

  1. $(function ()
  2. {
  3.  
  4. var loadbar = new LoadingBar("loadBar01");
  5. var max = 1000;
  6. loadbar.setMax(max);
  7. var i = 0;
  8. var time = setInterval(function ()
  9. {
  10. loadbar.setProgress(i);
  11. if (i == max)
  12. {
  13. clearInterval(time);
  14. return;
  15. }
  16. i += 10;
  17. }, 40);
  18. });

ps:对于js对象的设计,尽可能的考虑实用性~

最后完工~哈~ 吃饭吃饭~

源码点击下载

版权声明:本文为博主原创文章,未经博主允许不得转载。

HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等的更多相关文章

  1. HTML5 CSS3 诱人的实例 : 网页载入进度条的实现,下载进度条等

    今天给大家带来一个比較炫的进度条,进度条在一耗时操作上给用户一个比較好的体验,不会让用户认为在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务 ...

  2. HTML5 CSS3 诱人的实例 :canvas 模拟实现电子彩票刮刮乐

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/34089553 今天给大家带来一个刮刮乐的小例子~基于HTML5 canvas的, ...

  3. HTML5 CSS3 诱人的实例: 3D立方体旋转动画

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/34120047 创意来自:http://www.html5tricks.com/d ...

  4. HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能

    一般的视频网站对于用户上传的视频,在用户上传完成后,可以对播放的视频进行截图,然后作为视频的展示图.项目中也可以引入这样的功能给用户一种不错的体验,而不是让用户额外上传一张展示图. 效果图: 看起来还 ...

  5. 《转》如何让你的网页加载时间降低到 1s 内

    当初分析了定宽高值和定宽高比这两种常见的图片延迟加载场景,也介绍了他们的应对方案,还做了一点技术选型的工作. 经过一段时间的项目实践,在先前方案的基础上又做了很多深入的优化工作.最终将好奇心日报的网页 ...

  6. 使用WebView监控网页加载状况,PerformanceMonitor,WebViewClient生命周期

    原理:WebView加载Url完成后,注入js脚本,脚本代码使用W3C的PerformanceTimingAPI, 往js脚本传入一个Android对象(代码中为AndroidObject),在js脚 ...

  7. 网页加载进度的实现--JavaScript基础

    总结了一些网页加载进度的实现方式…… 1.定时器实现加载进度 <!DOCTYPE html><html lang="en"><head> < ...

  8. 如何让你的网页加载时间降低到 1s 内

    当初分析了定宽高值和定宽高比这两种常见的图片延迟加载场景,也介绍了他们的应对方案,还做了一点技术选型的工作. 经过一段时间的项目实践,在先前方案的基础上又做了很多深入的优化工作.最终将好奇心日报的网页 ...

  9. Web前端性能优化总结——如何提高网页加载速度

    一.提高网页加载速度的必要性 国际知名的一组来自Jupiter Research的数据显示:购物者在访问网站过程中的不满会导致销售损失和品牌受损,其中 77%的人将不再访问网站 ,62%的人不再从该网 ...

随机推荐

  1. 【Android 应用开发】Android游戏音效实现

    1. 游戏音效SoundPool 游戏中会根据不同的动作 , 产生各种音效 , 这些音效的特点是短暂(叫声,爆炸声可能持续不到一秒) , 重复(一个文件不断重复播放) , 并且同时播放(比如打怪时怪的 ...

  2. 安卓系统启动脚本init.rc说明文件readme.txt翻译

    本说明文件位于system/core/init/readme.txt 本文参考深入解析安卓系统一书,进行翻译,版权部分归书的作者  刘超,资深Android专家,系统架构师. 博客地址:http:// ...

  3. 三、编辑 Update set

    文档目录 开始使用  初始化查询实例: LambdaToSql.SqlClient DB = new LambdaToSql.SqlClient(); 更新单个实体对象,必须有主键Guid var e ...

  4. pyqt5 动画在QThread线程中无法运行问题

    自己做了一个tcp工具,在学习动画的时候踩了坑,需求是根据上线变绿色,离线变灰色,如果连接断开了,则变为灰色 问题现象: 可以看到点击"连接","离线"的时候动 ...

  5. Eclipse两种部署web项目方法

    一).首先使用J2EE的Eclipse的Servers(可以从show view中取出). 1).通过Eclipse建立一个Dynamic Web Project 2).通过Servers视图来创建一 ...

  6. spring的优缺点

    它是一个开源的项目,而且目前非常活跃:它基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,但它不强迫 你必须在每一层 中必须使用Spring,因为它 ...

  7. Ruby中如何复制对象 (deep clone)(转载)

    Ruby中如何复制对象 (deep clone) 用Ruby复制一个对象(object)也许没有你想像的那么容易. 今天我google了半天, 做个总结吧. 先从最简单的开始, b = a 是复制吗? ...

  8. ASP.NET MVC中的路由IRouteConstraint方法应用实例

    在如下代码的写法中: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { ro ...

  9. 架构之微服务(etcd)

    1. ETCD是什么 ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统.该项目目前最新稳定版本为2.3.0. 具体信息请参考[项目首页]和[Github].ETCD是CoreOS公司发起 ...

  10. 循环中else的用法

    name = 'hello' for x in name: print(x) if x == 'l': break #退出for循环 else: print("==for循环过程中,如果没有 ...