bootstrap实现动态进度条_bootstrap实现动态进度条效果

更新时间:2021-07-14    来源:php常用代码    手机版     字体:

【www.bbyears.com--php常用代码】

Bootstrap的动态进度条:

html: 创建一个modal   这里使用fade先将modal隐藏起来,然后modal里面嵌入progress 代码很简单

 

 代码如下

                      

                      

                        

                        

                          

                          

                            

                              

                                保存中:{{length}}%

                              

                            

                          

                        

                      

                    

 

PS:关于模态框:如果你想实现点击空白处不关闭模态框,可以在这里初始化modal的参数,或者在js里面通过

 

 代码如下

$('.modal').modal({backdrop: 'static', keyboard: false});设置并打开,当然,哪种方便就用哪种

js:

//进度条的控制

functionstartProgerss(){

  vartrytmp=0;

  varwait=false;

  run();

  functionrun(){

    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+"%");

        vartimer=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)

        vartimer=setTimeout(run,1000);

      }else{

        alert("服务器响应失败!");

        //隐藏进度条提示框

        $('#progressbar').modal('hide');

        //重置进度条的长度

        vue.length=10;

      }

    }

  }

}

 

解释:重点是要明白进度条的意义:给用户一个读条,让用户看到程序是在进行而不是死机了,这可以加强应用的用户体验效果。

我上面代码是这样设计的:当提交表单,调用js显示模态框(相当于显示进度条),然后js动态改变进度条的样式(长度),自己控制一个可取的范围

当前台接收到后台的响应的时候,让进度条加载到100%,关闭模态框(隐藏进度条),刷新数据。。

关于百分比的显示,我这里使用了Vue.js来代理,js改变vue.length的值,间接改变前台百分比的显示。当然,条条大路通罗马,没有最好的设计,只有更好的思想。

本文来源:http://www.bbyears.com/jiaocheng/129617.html