layui 实现加载动画以及非真实加载进度的方法


Posted in Javascript onSeptember 23, 2019

近期在做一个网站的查询功能,但是由于数据量确实太大,分页查询后也是很慢,同时查询出的数据部分还要进行一些处理,导致用户说要我们给他们加一个查询进度,要百分比显示。加上加载动画很简单,layui有现成的。但是还要动画。。我tm(手动微笑),原谅我水平比较低。然后就瞎搞,终于搞出了一个加载的进度,虽然还是假的。。。

上面废话有点多,直接切入正题。

首先是html代码。。。。。(不存在的2333333........)

然后是js代码:

//这里是必须要有的,_index的作用是用来关闭遮罩,详细看layui的文档
 var _index;
 var _lp_baseTime = 0;
 var _lp_startTime = 0;
 function updateLoadProgress() {
  if (_lp_baseTime < 0) {
   layer.close(_index);
   return;
  }
  var dval = parseInt(new Date().valueOf())- parseInt(_lp_startTime);
  var timeDifference = (dval / _lp_baseTime).toFixed(2);
  var lp = timeDifference < 1 ? timeDifference * 100 : 99;
  $("#loadProgress").html(parseInt(lp));
  setTimeout(function () { updateLoadProgress(); return; }, 650);
 }
 
 
 function 你的函数(){
 
 $.ajax({
  url:url,
  async:true,
  data:{},
  beforeSend:function(){
   //敲黑板
   _index = layer.load(1, {
     content: "<div style='margin-left:-23px;padding-top:44px;width:120px;color:#FFF;'>正在查询(<span id='loadProgress' >0</span>%)</div>",
     shade: [0.5, '#000']
    });
   //这里是预估的时间,因为整个进度都是根据消耗时间计算的 = =
   //这里的start,end,stns都是原始项目里带的。这个的作用是计算要等待的时长的,可以给一个固定值或者其他的东西公式,保证结果是正整数,单位是毫秒即可。
   _lp_baseTime = Math.abs(new Date(end).valueOf() - new Date(start).valueOf()) / 3600000 * stns.split(',').length * 150;
   _lp_startTime = new Date().valueOf();
 
   setTimeout(function () { updateLoadProgress(); return; }, 60);
  },
  success:function(){ _lp_baseTime = -1; $("#loadProgress").html("100");layer.close(_index); },
  error:function(){
    _lp_baseTime = -1;
    layer.close(_index);
   }
 });
 
 }

OK,就是这么多,主要是利用预估的时间与现在已进行时间进行预估做比较,所以实际使用的时候还要进行一定程度的调整,但是,最起码也是个思路是不是233333,参考一下吧

超过时间时进度会定格在99%,所以,emmmm....注意预留一些时间

以上这篇layui 实现加载动画以及非真实加载进度的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript sudoku 数独智力游戏生成代码
Mar 27 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
js中this的用法实例分析
Jan 10 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
Jan 27 Javascript
JavaScript中字符串分割函数split用法实例
Apr 07 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
微信小程序如何自定义table组件
Jun 29 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
Javascript实现单选框效果
Dec 09 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 #Javascript
ES10的13个新特性示例(小结)
Sep 23 #Javascript
layui-tree实现Ajax异步请求后动态添加节点的方法
Sep 23 #Javascript
vue多页面项目中路由使用history模式的方法
Sep 23 #Javascript
JS随机密码生成算法
Sep 23 #Javascript
详解mpvue开发微信小程序基础知识
Sep 23 #Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
Sep 23 #Javascript
You might like
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python构建XML树结构的方法示例
2017/06/30 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
python 串行执行和并行执行实例
2020/04/30 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python字典key不能是可以是啥类型
2020/08/04 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
电气技术员岗位职责
2013/11/19 职场文书
酒店销售主管岗位职责
2014/01/04 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
个人承诺书怎么写
2014/05/24 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers