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 相关文章推荐
处理文本部分内容的TextRange对象应用实例
Jul 29 Javascript
JavaScript实现复制文章自动添加版权
Aug 02 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
微信小程序 弹框和模态框实现代码
Mar 10 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
vue微信分享 vue实现当前页面分享其他页面
Dec 02 Javascript
React Native中NavigatorIOS组件的简单使用详解
Jan 27 Javascript
微信小程序制作表格的方法
Feb 14 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 Javascript
微信小程序实现点击生成随机验证码
Sep 09 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下使用SimpleXML 处理XML 文件
2010/02/27 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
JavaScript异步加载浅析
2014/12/28 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
python实现超市扫码仪计费
2018/05/30 Python
Python中is和==的区别详解
2018/11/15 Python
python for和else语句趣谈
2019/07/02 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Pytorch 实现权重初始化
2019/12/31 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
房屋买卖协议书范本
2014/09/27 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
销售2014年度工作总结
2014/12/08 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
教师节班会主持词
2015/07/06 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js