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 相关文章推荐
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
JQuery UI的拖拽功能实现方法小结
Mar 14 Javascript
js实现两个值相加alert出来精确到指定位
Sep 25 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
ES6新特性之函数的扩展实例详解
Apr 01 Javascript
Django使用多数据库的方法
Sep 06 Javascript
解析Angular 2+ 样式绑定方式
Jan 15 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
May 12 Javascript
解决VUE双向绑定失效的问题
Oct 29 Javascript
详解ES6 扩展运算符的使用与注意事项
Nov 12 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 类型转换函数intval
2009/06/20 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
在Python中使用成员运算符的示例
2015/05/13 Python
Python语言描述最大连续子序列和
2017/12/05 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
2014教师研修学习体会
2014/07/08 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
大学生个人总结范文
2015/02/15 职场文书
POST提交数据常见的四种方式
2022/01/18 HTML / CSS