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——表单应用范例
Feb 20 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
jQuery选择器querySelector的使用指南
Jan 23 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
javascript兼容性(实例讲解)
Aug 15 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
jQuery-ui插件sortable实现自由拖动排序
Dec 01 jQuery
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 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
jQuery each()小议
2010/03/18 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
python中Genarator函数用法分析
2015/04/08 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
Python requests模块实例用法
2019/02/11 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
Python读取stdin方法实例
2019/05/24 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python实现单机五子棋
2020/08/28 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
大学军训感言600字
2014/02/25 职场文书
计算机系本科生求职信
2014/05/31 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
化工厂员工工作总结
2015/10/15 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers