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 相关文章推荐
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
JavaScript 对象模型 执行模型
Oct 15 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 Javascript
layui操作列按钮个数和文字颜色的判断实例
Sep 11 Javascript
layui表格设计以及数据初始化详解
Oct 26 Javascript
jQuery 移除事件的方法
Jun 20 jQuery
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
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
PHPMailer安装方法及简单实例
2008/11/25 PHP
php下载文件的代码示例
2012/06/29 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
Add a Table to a Word Document
2007/06/15 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
Javascript动态创建div的方法
2015/02/09 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
详解python之配置日志的几种方式
2017/05/22 Python
利用django如何解析用户上传的excel文件
2017/07/24 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
学校搬迁方案
2014/06/15 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
义诊活动通知
2015/04/24 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
基于Python实现对比Exce的工具
2022/04/07 Python