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 相关文章推荐
jquery 常用操作整理 基础入门篇
Oct 14 Javascript
Javascript跨域请求的4种解决方式
Mar 17 Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
javascript合并表格单元格实例代码
Jan 03 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
AngularJS中使用three.js的实例详解
Jul 21 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
通过函数作用域和块级作用域看javascript的作用域链
Aug 05 Javascript
JS实现小星星特效
Dec 24 Javascript
JavaScript中CreateTextFile函数
Aug 30 Javascript
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
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
第三节--定义一个类
2006/11/16 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
强制设为首页代码
2006/06/19 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
JS删除数组里的某个元素方法
2018/02/03 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
深入解析Python中的WSGI接口
2015/05/11 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python实现网站注册验证码生成类
2017/06/08 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
HTML5标签小集
2011/08/02 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
大专学生推荐信范文
2013/11/19 职场文书
生物科学系大学生的自我评价
2013/12/20 职场文书
探亲邀请信范文
2014/01/30 职场文书
购房个人委托书范本
2014/10/11 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
公司给客户的感谢信
2015/01/23 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
总经理司机岗位职责
2015/04/10 职场文书
普通员工辞职信范文
2015/05/12 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android