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里选择超链接的实现代码
May 22 Javascript
Google Dart编程语法和基本类型学习教程
Nov 27 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
Jun 14 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
微信小程序实现人脸检测功能
May 25 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 Javascript
jQuery实现动态添加和删除input框代码实例
Mar 29 jQuery
VsCode与Node.js知识点详解
Sep 05 Javascript
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
Yii2.0框架模型添加/修改/删除数据操作示例
2019/07/18 PHP
php获取微信openid方法总结
2019/10/10 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
用Python编写一个每天都在系统下新建一个文件夹的脚本
2015/05/04 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
成人大专生实习期的自我评价
2013/10/02 职场文书
初中家长寄语
2014/04/02 职场文书
书香校园建设方案
2014/05/02 职场文书
给校长的建议书400字
2014/05/15 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
药剂专业求职信
2014/06/20 职场文书
详解Python requests模块
2021/06/21 Python
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang