layui 實(shí)現(xiàn)加載動(dòng)畫以及非真實(shí)加載進(jìn)度的方法
近期在做一個(gè)網(wǎng)站的查詢功能,但是由于數(shù)據(jù)量確實(shí)太大,分頁查詢后也是很慢,同時(shí)查詢出的數(shù)據(jù)部分還要進(jìn)行一些處理,導(dǎo)致用戶說要我們給他們加一個(gè)查詢進(jìn)度,要百分比顯示。加上加載動(dòng)畫很簡單,layui有現(xiàn)成的。但是還要?jiǎng)赢?。。我tm(手動(dòng)微笑),原諒我水平比較低。然后就瞎搞,終于搞出了一個(gè)加載的進(jìn)度,雖然還是假的。。。
上面廢話有點(diǎn)多,直接切入正題。
首先是html代碼。。。。。(不存在的2333333........)
然后是js代碼:
//這里是必須要有的,_index的作用是用來關(guān)閉遮罩,詳細(xì)看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 你的函數(shù)(){ $.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'] }); //這里是預(yù)估的時(shí)間,因?yàn)檎麄€(gè)進(jìn)度都是根據(jù)消耗時(shí)間計(jì)算的 = = //這里的start,end,stns都是原始項(xiàng)目里帶的。這個(gè)的作用是計(jì)算要等待的時(shí)長的,可以給一個(gè)固定值或者其他的東西公式,保證結(jié)果是正整數(shù),單位是毫秒即可。 _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,就是這么多,主要是利用預(yù)估的時(shí)間與現(xiàn)在已進(jìn)行時(shí)間進(jìn)行預(yù)估做比較,所以實(shí)際使用的時(shí)候還要進(jìn)行一定程度的調(diào)整,但是,最起碼也是個(gè)思路是不是233333,參考一下吧
超過時(shí)間時(shí)進(jìn)度會(huì)定格在99%,所以,emmmm....注意預(yù)留一些時(shí)間
以上這篇layui 實(shí)現(xiàn)加載動(dòng)畫以及非真實(shí)加載進(jìn)度的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- layui加載數(shù)據(jù)顯示loading加載完成loading消失的實(shí)例代碼
- layui table動(dòng)態(tài)表頭 改變表格頭部 重新加載表格的方法
- 解決layui動(dòng)態(tài)加載復(fù)選框無法選中的問題
- Layui table field初始化加載時(shí)進(jìn)行隱藏的方法
- Layui彈出層 加載 做編輯頁面的方法
- layui異步加載table表中某一列數(shù)據(jù)的例子
- layui form表單提交之后重新加載數(shù)據(jù)表格的方法
- layui加載表格,綁定新增,編輯刪除,查看按鈕事件的例子
- layui動(dòng)態(tài)加載多表頭的實(shí)例
相關(guān)文章
iSlider手機(jī)端圖片滑動(dòng)切換插件使用詳解
這篇文章主要為大家詳細(xì)介紹了iSlider手機(jī)端圖片滑動(dòng)切換插件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12利用JavaScript實(shí)現(xiàn)拖拽改變元素大小
本文主要介紹了JavaScript實(shí)現(xiàn)拖拽改變元素大小的原理及具體實(shí)例分析,具有很好的參考價(jià)值,需要的朋友一起來看下吧2016-12-12JavaScript實(shí)現(xiàn)的select點(diǎn)菜功能示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的select點(diǎn)菜功能,涉及javascript動(dòng)態(tài)操作頁面元素及元素遍歷相關(guān)技巧,需要的朋友可以參考下2017-01-01靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML
靜態(tài)的動(dòng)態(tài)續(xù)篇之來點(diǎn)XML...2006-12-12js實(shí)現(xiàn)隨機(jī)點(diǎn)名程序
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)隨機(jī)點(diǎn)名程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11javascript實(shí)現(xiàn)uploadify上傳格式以及個(gè)數(shù)限制
這篇文章主要介紹了javascript如何限制uploadify上傳格式以及個(gè)數(shù)的實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下2015-11-11