bootstrap實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條效果
Bootstrap的動(dòng)態(tài)進(jìn)度條:
html: 創(chuàng)建一個(gè)modal 這里使用fade先將modal隱藏起來,然后modal里面嵌入progress 代碼很簡(jiǎn)單
<div class="modal fade" data-backdrop="static" tabindex="-1" id="progressbar"> <!--窗口聲明:--> <div class="modal-dialog modal-lg"> <!-- 內(nèi)容聲明 --> <div class="modal-content"> <!-- 主體 --> <div class="modal-body"> <div class="progress progress-striped active"> <div id="test" class="progress-bar progress-bar-success" role="progressbar" style="width: 10%;"> 保存中:{{length}}% </div> </div> </div> </div> </div> </div>
PS:關(guān)于模態(tài)框:如果你想實(shí)現(xiàn)點(diǎn)擊空白處不關(guān)閉模態(tài)框,可以在<div class="modal fade" data-backdrop="static">這里初始化modal的參數(shù),或者在js里面通過
$('.modal').modal({backdrop: 'static', keyboard: false});設(shè)置并打開,當(dāng)然,哪種方便就用哪種
js:
//進(jìn)度條的控制 function startProgerss(){ var trytmp=0; var wait=false; run(); function run(){ if(!wait){ vue.length+=(Math.random()*10).ceil(); } if(vue.length<=98){ if(vue.length>80 && textupover && imgupover){ vue.length=100; $("div[role='progressbar']").css("width","100%"); //短暫延遲后刷新頁面,貌似""作用是刷新本頁面 refreshtohome(1000, ""); }else{ $("div[role='progressbar']").css("width",vue.length+"%"); var timer=setTimeout(run,100); } }else{//等待時(shí)間過長(zhǎng),可能出現(xiàn)了其他錯(cuò)誤 wait=true;//進(jìn)入等待狀態(tài) vue.length=99; $("div[role='progressbar']").css("width","99%"); //查看服務(wù)器的響應(yīng) if(textupover && imgupover){ vue.length=100; $("div[role='progressbar']").css("width","100%"); //短暫延遲后刷新頁面,貌似""作用是刷新本頁面 refreshtohome(1000, ""); } if(++trytmp<10){//超時(shí)等待(大約10s) var timer=setTimeout(run,1000); }else{ alert("服務(wù)器響應(yīng)失??!"); //隱藏進(jìn)度條提示框 $('#progressbar').modal('hide'); //重置進(jìn)度條的長(zhǎng)度 vue.length=10; } } } }
解釋:重點(diǎn)是要明白進(jìn)度條的意義:給用戶一個(gè)讀條,讓用戶看到程序是在進(jìn)行而不是死機(jī)了,這可以加強(qiáng)應(yīng)用的用戶體驗(yàn)效果。
我上面代碼是這樣設(shè)計(jì)的:當(dāng)提交表單,調(diào)用js顯示模態(tài)框(相當(dāng)于顯示進(jìn)度條),然后js動(dòng)態(tài)改變進(jìn)度條的樣式(長(zhǎng)度),自己控制一個(gè)可取的范圍
當(dāng)前臺(tái)接收到后臺(tái)的響應(yīng)的時(shí)候,讓進(jìn)度條加載到100%,關(guān)閉模態(tài)框(隱藏進(jìn)度條),刷新數(shù)據(jù)。。
關(guān)于百分比的顯示,我這里使用了Vue.js來代理,js改變vue.length的值,間接改變前臺(tái)百分比的顯示。當(dāng)然,條條大路通羅馬,沒有最好的設(shè)計(jì),只有更好的思想。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Bootstrap每天必學(xué)之進(jìn)度條
- BootStrap Progressbar 實(shí)現(xiàn)大文件上傳的進(jìn)度條的實(shí)例代碼
- BootStrap 實(shí)現(xiàn)各種樣式的進(jìn)度條效果
- BootStrap初學(xué)者對(duì)彈出框和進(jìn)度條的使用感覺
- Spring Boot+AngularJS+BootStrap實(shí)現(xiàn)進(jìn)度條示例代碼
- bootstrap多種樣式進(jìn)度條展示
- BootStrap組件之進(jìn)度條的基本用法
- Bootstrap實(shí)現(xiàn)各種進(jìn)度條樣式詳解
- Bootstrap進(jìn)度條實(shí)現(xiàn)代碼解析
- jquery 簡(jiǎn)單的進(jìn)度條實(shí)現(xiàn)代碼
- 分享8款優(yōu)秀的 jQuery 加載動(dòng)畫和進(jìn)度條插件
- bootstrap+jQuery實(shí)現(xiàn)的動(dòng)態(tài)進(jìn)度條功能示例
相關(guān)文章
利用javascript實(shí)現(xiàn)web頁面中指定區(qū)域打印
將需要打印的課程表的table放入div標(biāo)簽中,然后指定出需要打印的區(qū)域,最后調(diào)用window.print打印指定內(nèi)容2013-10-10layui動(dòng)態(tài)設(shè)置單選按鈕選中效果實(shí)例
最近在使用layui前端框架,在使用單選按鈕、下拉菜單select、checkbox等控件的時(shí)候,往往遇到一些初始化的東西,下面這篇文章主要給大家介紹了關(guān)于layui動(dòng)態(tài)設(shè)置單選按鈕選中效果的相關(guān)資料,需要的朋友可以參考下2023-06-06詳解微信小程序-掃一掃 wx.scanCode() 掃碼大變身
這篇文章主要介紹了微信小程序-掃一掃wx.scanCode() 掃碼大變身,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04js實(shí)現(xiàn)的動(dòng)畫導(dǎo)航菜單效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)的動(dòng)畫導(dǎo)航菜單效果代碼,涉及JavaScript通過鼠標(biāo)事件控制頁面元素樣式動(dòng)態(tài)變換的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09js+css實(shí)現(xiàn)回到頂部按鈕(back to top)
這篇文章主要為大家詳細(xì)介紹了js+css實(shí)現(xiàn)回到頂部按鈕back to top回到頂部按鈕,感興趣的小伙伴們可以參考一下2016-03-03Yii2使用Bootbox插件實(shí)現(xiàn)自定義彈窗
Bootbox.js 是一個(gè)小型的 JavaScript 庫用來創(chuàng)建簡(jiǎn)單的可編程對(duì)話框,基于 Twitter 的 Bootstrap 開發(fā)。今天我們就來研究下,如何使用bootbox插件來實(shí)現(xiàn)自定義彈窗。2015-04-04