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

  • 相关阅读:
    一个日期Js文件。 2013年10月12日 星期六 癸巳年九月初八
    【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
    结构体快排qsort()
    Crypto API加密通信流程
    LA 4255 Guess
    hdu1005 Number Sequence(数论)
    c++异常 连续抛出异常
    IMP导入数据 报错 IMP-00058 ORA-01691 IMP-00028
    Groovy/Spock 测试导论
    Groovy 与 DSL
  • 原文地址:https://www.cnblogs.com/hesijian/p/7028504.html
Copyright © 2011-2022 走看看