bootstrap得動態進度條



Bootstrap的動態進度條:

html: 創建一個modal   這裏使用fade先將modal隱藏起來,然後modal裏面嵌入progress 代碼很簡單

</pre><pre name="code" class="html"><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" style="width: 10%;">
														      	保存中:{{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的值,間接改變前臺百分比的顯示。當然,條條大路通羅馬,沒有最好的設計,只有更好的思想。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章