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代码
Nov 10 Javascript
js 获取服务器控件值的代码
Mar 05 Javascript
js select常用操作控制代码
Mar 16 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
JS实现“隐藏与显示”功能(多种方法)
Nov 24 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
Mar 17 Javascript
es6数组includes()用法实例分析
Apr 18 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时区转换转换函数
2014/01/07 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
Yii框架安装简明教程
2020/05/15 PHP
js 目录列举函数
2008/11/06 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
jQuery 选择器详解
2015/01/19 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
用python写PDF转换器的实现
2020/10/29 Python
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
篮球比赛策划方案
2014/06/05 职场文书
英文慰问信范文
2015/03/24 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript
Python函数对象与闭包函数
2022/04/13 Python