bootstrap得動態進度條


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" 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});設置並打開,當然,哪種方便就用哪種

//進度條的控制  
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的值,間接改變前台百分比的顯示。當然,條條大路通羅馬,沒有最好的設計,只有更好的思想。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM