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

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

最新文章

  1. win10控制台程序printf死锁问题
  2. DIV+CSS 清除浮动方法总结
  3. 练习1-21:编写程序entab,将空格串替换为最少数量的制表符和空格。。。(C程序设计语言 第2版)
  4. android 获取时间
  5. HDU 1087 Super Jumping! Jumping! Jumping! (DP)
  6. WCF之安全
  7. binlog/relay_log的清理
  8. CSS3选择器小结
  9. 萝卜德森的sublime笔记中文翻译版
  10. PyQt5实现透明电子时钟
  11. vim编辑器的设置
  12. 配置Robot Framework 环境时如何查看wxPython是否成功安装
  13. typescript和coffeescript简介
  14. 【数据库】SQL语句
  15. Codeforces Round #541
  16. 普通用户修改root密码【转】
  17. 解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER
  18. CentOS 7 yum安装配置mysql
  19. GNU C __attribute__ 机制简介
  20. Android 7.1 SystemUI--任务管理--场景一:长按某个缩略图,拖动分屏的流程

热门文章

  1. suitecrm配置(nginx设置)
  2. 求方程x1+x2+x3=15的整数解的数目
  3. ionic3遇到的刷新页面服务器关闭的问题
  4. Fabric CA/数字证书管理
  5. 使用extract-text-webpack-plugin插件后报错
  6. vue-split-table【表格合并和编辑插件】
  7. arcgis server10.2发布地图服务报错
  8. 自动化部署三剑客 gitlab + ansible + jenkins
  9. 第七讲 自定义Realm实现授权
  10. redis 五大类型 、持久化方式以及主从(哨兵模式)