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 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
javascript判断非数字的简单例子
Jul 18 Javascript
纯js简单日历实现代码
Oct 05 Javascript
常见的jQuery选择器汇总
Nov 24 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
Mar 30 Javascript
JS实现动态给图片添加边框的方法
Apr 01 Javascript
通过伪协议解决父页面与iframe页面通信的问题
Apr 05 Javascript
javascript基本算法汇总
Mar 09 Javascript
boostrapTable的refresh和refreshOptions区别浅析
Jan 22 Javascript
JavaScript伪数组用法实例分析
Dec 22 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
Oct 29 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
javascript demo 基本技巧
2009/12/18 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
js实现动态时钟
2020/03/12 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
Python Django基础二之URL路由系统
2019/07/18 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
法院实习人员自我鉴定
2013/09/26 职场文书
商务邀请函范文
2014/01/14 职场文书
公司员工检讨书
2014/02/08 职场文书
校园元旦活动总结
2014/07/09 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2015年派出所民警工作总结
2015/04/24 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers