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实战_读书笔记1—选择jQuery
Jan 22 Javascript
基于jquery的一个图片hover的插件
Apr 24 Javascript
jquery ajax abort()的使用方法
Oct 28 Javascript
JavaScript定时器和优化的取消定时器方法
Jul 03 Javascript
详解JavaScript UTC时间转换方法
Jan 07 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
Jun 26 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
使用Electron构建React+Webpack桌面应用的方法
Dec 15 Javascript
使用Vue组件实现一个简单弹窗效果
Apr 23 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
小程序中canvas的drawImage方法参数使用详解
Jul 04 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
php 修改密码实现代码
2017/05/24 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
python中stdout输出不缓存的设置方法
2014/05/29 Python
python多线程编程中的join函数使用心得
2014/09/02 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python元组知识点总结
2019/02/18 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
餐饮部总监岗位职责范文
2014/02/13 职场文书
服装促销活动方案
2014/02/23 职场文书
党员承诺书范文
2014/05/19 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
后备干部推荐材料
2014/12/24 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
法制工作总结2015
2015/07/23 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers