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的值,间接改变前台百分比的显示。当然,条条大路通罗马,没有最好的设计,只有更好的思想。






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