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 相关文章推荐
JQuery 选择器 xpath 语法应用
May 13 Javascript
JQuery实现简单验证码提示解决方案
Dec 20 Javascript
JS刷新框架外页面七种实现代码
Feb 18 Javascript
JS不间断向上滚动效果代码
Dec 25 Javascript
纯js实现遮罩层效果原理分析
May 27 Javascript
分享一则JavaScript滚动条插件源码
Mar 03 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
前端开发之CSS原理详解
Mar 11 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
浅析Python函数式编程
2018/10/06 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
班风口号
2014/06/18 职场文书
项目合作协议书
2014/09/23 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
公司周年庆典标语
2014/10/07 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
实习报告怎么写
2019/06/20 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL