jquery模拟进度条实现方法


Posted in Javascript onAugust 03, 2015

本文实例讲述了jquery模拟进度条实现方法。分享给大家供大家参考。具体如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js模拟进度条练习</title>
<script type='text/javascript' src="http://xiazai.3water.com/201508/yuanma/jquery-1.8.0.min.js"></script>
<script type='text/javascript' src='http://xiazai.3water.com/201508/yuanma/jquery.artDialog.js?skin=default'></script>
<style>
body{ font-size:12px}
.aui_nw, .aui_ne, .aui_sw, .aui_se { height: 1px; width: 1px; }
.aui_outer, .aui_inner { border: 0; }
.aui_state_lock .aui_border { box-shadow: 0 0 10px rgba(0, 0, 0, .8); }
</style>
</head>
<body>
<button id="starLoading">显示进度条</button>
<div id="msgHtml">https://3water.com</div>
</body>
</html>
<script>
  (function(w){
    var _html='<div style="line-height: 30px;text-align: center;">正在为您载入数据,请稍后……</div><div id="jsLoadOuter" style="width:250px;height:8px;border:#6BAAC9 solid 1px; background:#C0EBFF; margin:0 auto;box-shadow: 0 0 3px #2E94BB;padding:1px"><div id="jsLoadInner" style="background:#54AEE0;height:100%;width:0"></div></div>';
    var __g;
    var _maxWidth=100;
    var _nowWidth=0;
    var _speed=30;
    var _step=2;
    var __time;
    progress={
      render:function(fn){
        fn&&fn(_html);
        _nowWidth=0;
        __g=document.getElementById('jsLoadInner');
        this.fx();
      },
      complete:function(fn){
        clearTimeout(__time);
        progress.completeFn=fn;
        this.setOver();
      },     
      setOver:function(){
        var _stepa=_step*1.5;
        if(_nowWidth<_maxWidth){
          _nowWidth=_nowWidth-0+_stepa;
          parseInt(_nowWidth)>parseInt(_maxWidth)?_nowWidth=_maxWidth:'';
          __g.style.width=''+_nowWidth+'%';
          _speed=(_maxWidth-_nowWidth)/1000;
          __time=setTimeout('progress.setOver()',_speed) ;
        }else{
          clearTimeout(__time);
          progress.completeFn&&progress.completeFn();
        };
      },
      fx:function(){
        var _stepa=_step;
        if(_nowWidth<_maxWidth-5){
          _stepa=_nowWidth>_maxWidth*0.6?(_stepa*0.02):_stepa;
          _nowWidth=_nowWidth-0+_stepa;
          parseInt(_nowWidth)>parseInt(_maxWidth)?_nowWidth=_maxWidth:'';
          __g.style.width=''+_nowWidth+'%';
          __time=setTimeout('progress.fx()',_speed);
        }else{
          clearTimeout(__time);
        };
      }
    }
    w.progress=progress;
  })(window)
  //
  $(function(){
    showLoading();
    $('body')
    .on('click','#starLoading',function(){
      showLoading();         
    })       
  })
  function showLoading(){
    //开始显示进度条
    progress.render(function(html){
        art.dialog({id:"jsLoadingDialog",title:"\u6b63\u5728\u52a0\u8f7d\u4e2d\u2026\u2026",cancel:!1,lock:!0,background:"#fff",fixed:!0,content:html});
    }); 
    //请求完成后完成进度条,,,模拟10秒后请求完成
    setTimeout(function(){
      progress.complete(function(html){
        art.dialog.list['jsLoadingDialog']&&art.dialog.list['jsLoadingDialog'].close();
        $('#msgHtml').html('进度条已走完');
      });
    },10000);    
  };
</script>

运行效果如下图所示:

jquery模拟进度条实现方法

希望本文所述对大家的jquery程序设计有所帮助。

Javascript 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
Aug 29 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
Nov 25 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
JS如何在数组指定位置插入元素
Mar 10 Javascript
js实现圆盘记速表
Aug 03 #Javascript
包含中国城市的javascript对象实例
Aug 03 #Javascript
jQuery跨域问题解决方案
Aug 03 #Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 #Javascript
提高jQuery性能优化的技巧
Aug 03 #Javascript
jquery简单实现幻灯片的方法
Aug 03 #Javascript
JS拖拽插件实现步骤
Aug 03 #Javascript
You might like
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
smarty模板数学运算示例
2016/12/11 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
python中lambda与def用法对比实例分析
2015/04/30 Python
Python3最长回文子串算法示例
2019/03/04 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
体育学院毕业生自荐信
2013/11/03 职场文书
高中生学习的自我评价
2013/12/14 职场文书
自荐信需注意事项
2014/01/25 职场文书
上班看电影检讨书
2014/02/12 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
《画风》教学反思
2014/04/16 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
远程教育学习心得体会
2016/01/23 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android
Python自动化实战之接口请求的实现
2022/05/30 Python