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 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
csdn 论坛技术区平均给分功能
Nov 07 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
Sep 02 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
Bootstrap按钮组件详解
Apr 26 Javascript
jQuery的文档处理程序详解
May 10 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
Mar 13 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
原生JS实现多个小球碰撞反弹效果示例
Jan 31 Javascript
浅谈React的最大亮点之虚拟DOM
May 29 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 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自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
php显示页码分页类的封装
2017/06/08 PHP
PHP调用其他文件中的类
2018/04/02 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
python爬取代理ip的示例
2020/12/18 Python
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
销售工作岗位职责
2013/12/24 职场文书
法制宣传口号
2014/06/16 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技