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 相关文章推荐
javascript JSON操作入门实例
Apr 16 Javascript
jquery each()源代码
Feb 14 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
Apr 02 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
Dec 13 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
jquery ajaxfileupload异步上传插件
Nov 21 jQuery
Vue数据双向绑定的深入探究
Nov 27 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
php Http_Template_IT类库进行模板替换
2009/03/19 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
js性能优化技巧
2015/11/29 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
node通过express搭建自己的服务器
2017/09/30 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python连接mysql调用存储过程示例
2014/03/05 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
详解Python中的分支和循环结构
2020/02/11 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
迁户口计划生育证明
2014/10/19 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
js判断两个数组相等的5种方法
2022/05/06 Javascript