JavaScript实现审核流程状态的动态显示进度条


Posted in Javascript onMarch 15, 2017

对于有很多流程的东西,我们希望能够根据不同的阶段,用流程条对应地进行显示,如下所示:

JavaScript实现审核流程状态的动态显示进度条

以上功能对应的html代码如下:

<div class="col-md-12 col-lg-3"> 
   <div class="panel panel-default"> 
    <div class="tit06"> 
     <h3>漏洞处理状态</h3> 
    </div> 
    <div class="status"> 
     <ul> 
      <li name="__tab_step1_pub" class="top active"> 
        <div class="info" id="tab_step1"> 
        <h4> 
         <div class="heading"></div> 
         待审阅</h4> 
        <p class="text" >漏洞已提交,等待厂商审阅</p>  
        </div> 
      </li> 
      <li name="__tab_step2_pub" > 
        <div class="info" id="tab_step2"> 
        <h4> 
         <div class="heading"></div> 
         待确认</h4> 
        <p class="text" >漏洞已开始审阅,等待厂商确认</p> 
        </div> 
      </li> 
      <li name="__tab_step3_pub"> 
       <div class="info" id="tab_step3"> 
        <h4> 
         <div class="heading"></div> 
         待修复</h4> 
         <p class="text" >漏洞已被确认,等待厂商修复</p>   
       </div> 
      </li> 
      <li name="__tab_step4_pub"> 
        <div class="info" id="tab_step4"> 
        <h4> 
         <div class="heading"></div> 
         已关闭</h4> 
          <p class="text" >漏洞修复完毕,厂商关闭漏洞</p> 
        </div> 
      </li> 
      <li name="__tab_step5_pub" > 
        <div class="info" id="tab_step5"> 
        <h4> <div class="heading"></div> 
         已公开</h4> 
        <p class="text" >厂商同意公开此漏洞</p> 
        </div> 
      </li> 
     </ul> 
    </div> 
   </div> 
  </div>

这里采用的方法是根据处理的状态,这里是$status,对应的在相应的<li>的标签中增加样式类  class="active",而样式类active中实现的是在对应位置替换背景图片,即将原来的灰色流程线条替换成绿色的流程线条。即需要设置对应的替换后和替换前的css,这里对应的css如下(\assets\default\threatrules\style.css中的一部分):

.status ul { padding: 15px; } 
.status ul li { overflow: hidden; background: url("../threatrules/steps-line.jpg") repeat-y -3px 0px; padding: 26px 0 0px; } 
.status .active { background: url("../threatrules/steps-line-over.jpg") repeat-y -3px 0px; } 
.status .end { background: url("../threatrules/steps-line-over.jpg") repeat-y -3px 0px; } 
.status .end .heading { background: url("../threatrules/steps-over.jpg") no-repeat 0px 0px; } 
.status .bottom { background: url("../threatrules/steps-line.jpg") repeat-y -3px 0px; } 
.status .skip { background: url("../threatrules/steps-line-skip.jpg") repeat-y -3px 0px; } 
.status .skip .heading { background: url("../threatrules/steps-skip.jpg") no-repeat 0px 0px; } 
.status .active .heading { background: url("../threatrules/steps-over.jpg") no-repeat 0px 0px; } 
.status .heading { float: left; width: 20px; height: 20px; background: url("../threatrules/steps.jpg") no-repeat 0px 0px; margin-right: 5px; } 
.status .top { padding-top: 0px; } 
.status .bottom { background: url("../threatrules/steps-line-b1.jpg") no-repeat 0px 0px; } 
.status .bottom-active { background: url("../threatrules/steps-line-b2.jpg") no-repeat 0px 0px; }

设置好对应的css后,下一步就是编写js,根据$status的值,在对应的<li>中添加class即可,实现此功能的js代码如下:

<script type="text/javascript"> 
/*根据处理状态,添加或删除对应的样式名*/ 
function addClass(elem, className){ //增加类名 
  if(!elem.className){ 
      elem.className = className; 
      return; 
  } 
  var clazz = ' ' + elem.className + ' '; 
  if(clazz.indexOf(' ' + className + ' ') === -1){ 
      elem.className = elem.className + ' ' + className; 
  } 
} 
 var step1 = document.getElementById('tab_step1'), 
   step2 = document.getElementById('tab_step2'), 
   step3 = document.getElementById('tab_step3') , 
   step4 = document.getElementById('tab_step4'), 
   step5 = document.getElementById('tab_step5'); 
 var status = '<?php echo $status;?>'; 
 switch(status){ 
   case '1': //待确认 
     addClass(step2.parentNode, 'active'); //parentNode即为包含step2的外一层标签,此处即为<li>标签 
     break; 
   case '2': //待修复 
      addClass(step2.parentNode, 'active'); 
      addClass(step3.parentNode, 'active'); 
     break; 
   case '3'://已关闭 
     addClass(step2.parentNode, 'active'); 
     addClass(step3.parentNode, 'active'); 
     addClass(step4.parentNode, 'active'); 
     break; 
   case '4': //已公开 
     addClass(step2.parentNode, 'active'); 
     addClass(step3.parentNode, 'active'); 
     addClass(step4.parentNode, 'active'); 
     addClass(step5.parentNode, 'end bottom-active'); 
     break; 
 } 
</script>

这样设置之后,更改$status的状态,为“待修复”后,网页流程实现如下:

JavaScript实现审核流程状态的动态显示进度条

查看对应的网页html代码:

JavaScript实现审核流程状态的动态显示进度条

可以看到在对应的<li>标签中添加了class="active",至此设置成功,实现动态显示流程进度。

以上所述是小编给大家介绍的JavaScript实现审核流程状态的动态显示进度条,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
function foo的原型与prototype属性解惑
Nov 19 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 Javascript
js替换字符串的所有示例代码
Jul 23 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
Dec 23 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
Jun 03 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
Jan 05 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
Jun 01 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
vue+iview分页组件的封装
Nov 17 Vue.js
js实现自定义进度条效果
Mar 15 #Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 #Javascript
jQuery模拟窗口抖动效果
Mar 15 #Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 #Javascript
基于React实现表单数据的添加和删除详解
Mar 14 #Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 #Javascript
JS检测数组类型的方法小结
Mar 14 #Javascript
You might like
PHP 程序授权验证开发思路
2009/07/09 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
浅析php单例模式
2014/11/25 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
node.js基础知识汇总
2020/08/25 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
tensorflow实现简单的卷积网络
2018/05/24 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
运动会邀请函范文
2014/02/06 职场文书
品牌服务方案
2014/06/03 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2014年客服工作总结范文
2014/11/13 职场文书
保险公司增员口号
2015/12/25 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android