您好,登錄后才能下訂單哦!
Bootstrap的動態進度條:
html: 創建一個modal 這里使用fade先將modal隱藏起來,然后modal里面嵌入progress 代碼很簡單
<div class="modal fade" data-backdrop="static" tabindex="-1" id="progressbar"> <!--窗口聲明:--> <div class="modal-dialog modal-lg"> <!-- 內容聲明 --> <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" > 保存中:{{length}}% </div> </div> </div> </div> </div> </div>
PS:關于模態框:如果你想實現點擊空白處不關閉模態框,可以在<div class="modal fade" data-backdrop="static">這里初始化modal的參數,或者在js里面通過
$('.modal').modal({backdrop: 'static', keyboard: false});設置并打開,當然,哪種方便就用哪種
js:
//進度條的控制 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{//等待時間過長,可能出現了其他錯誤 wait=true;//進入等待狀態 vue.length=99; $("div[role='progressbar']").css("width","99%"); //查看服務器的響應 if(textupover && imgupover){ vue.length=100; $("div[role='progressbar']").css("width","100%"); //短暫延遲后刷新頁面,貌似""作用是刷新本頁面 refreshtohome(1000, ""); } if(++trytmp<10){//超時等待(大約10s) var timer=setTimeout(run,1000); }else{ alert("服務器響應失敗!"); //隱藏進度條提示框 $('#progressbar').modal('hide'); //重置進度條的長度 vue.length=10; } } } }
解釋:重點是要明白進度條的意義:給用戶一個讀條,讓用戶看到程序是在進行而不是死機了,這可以加強應用的用戶體驗效果。
我上面代碼是這樣設計的:當提交表單,調用js顯示模態框(相當于顯示進度條),然后js動態改變進度條的樣式(長度),自己控制一個可取的范圍
當前臺接收到后臺的響應的時候,讓進度條加載到100%,關閉模態框(隱藏進度條),刷新數據。。
關于百分比的顯示,我這里使用了Vue.js來代理,js改變vue.length的值,間接改變前臺百分比的顯示。當然,條條大路通羅馬,沒有最好的設計,只有更好的思想。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。