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 相关文章推荐
为Yahoo! UI Extensions Grid增加内置的可编辑器
Mar 10 Javascript
javascript CSS画图之基础篇
Jul 29 Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
Sep 26 Javascript
javascript下拉列表菜单的实现方法
Nov 18 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 Javascript
微信小程序 setData的使用方法详解
Apr 20 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 Javascript
js中延迟加载和预加载的具体使用
Jan 14 Javascript
uniapp开发打包多端应用完整方法指南
Dec 24 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数组及条件,循环语句学习
2012/11/11 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
twig里使用js变量的方法
2016/02/05 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
js闭包学习心得总结
2018/04/17 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
Python contextlib模块使用示例
2015/02/18 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
基于python图像处理API的使用示例
2020/04/03 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
Pandas的数据过滤实现
2021/01/15 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
一套Java笔试题
2016/08/20 面试题
英文版区域经理求职信
2013/10/23 职场文书
新护士岗前培训制度
2014/02/02 职场文书
防火标语大全
2014/10/06 职场文书
班主任开场白
2015/06/01 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
nginx七层负载均衡配置详解
2022/07/15 Servers