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 相关文章推荐
JObj预览一个JS的框架
Mar 13 Javascript
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
利用javascript打开模态对话框(示例代码)
Jan 11 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
node.js正则表达式获取网页中所有链接的代码实例
Jun 03 Javascript
JS+CSS实现的拖动分页效果实例
May 11 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
ES6中Proxy代理用法实例浅析
Apr 06 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
vue+elementUI实现图片上传功能
Aug 20 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 获取全局变量的代码
2011/04/21 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
Python实现图像几何变换
2015/07/06 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Python实现GIF图倒放
2020/07/16 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
手术室护士个人总结
2015/02/13 职场文书
公司费用报销管理制度
2015/08/04 职场文书
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
Win2008系统搭建DHCP服务器
2022/06/25 Servers