bootstrap实现动态进度条效果


Posted in Javascript onMarch 08, 2017

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});设置并打开,当然,哪种方便就用哪种

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
js改变鼠标的形状和样式的方法
Mar 31 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
客户端验证用户名和密码的方法详解
Jun 16 Javascript
JAVA中截取字符串substring用法详解
Apr 14 Javascript
gulp解决跨域的配置文件问题
Jun 08 Javascript
vue2单元测试环境搭建
May 24 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
Sep 27 Javascript
Vue 实现分页与输入框关键字筛选功能
Jan 02 Javascript
jquery实现超简单的瀑布流布局【推荐】
Mar 08 #Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 #Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 #Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
Mar 08 #Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
Mar 08 #Javascript
jquery仿ps颜色拾取功能
Mar 08 #Javascript
关于Javascript中document.cookie的使用
Mar 08 #Javascript
You might like
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Django中的forms组件实例详解
2018/11/08 Python
python实现的config文件读写功能示例
2019/09/24 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
python实现飞船大战
2020/04/24 Python
Python面向对象实现方法总结
2020/08/12 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
就业自荐信
2013/12/04 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
《音乐之都维也纳》教学反思
2014/04/16 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
浅谈MySQL user权限表
2021/06/18 MySQL
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server