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 相关文章推荐
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
基于jQuery实现简单的折叠菜单效果
Nov 23 Javascript
Boostrap基础教程之JavaScript插件篇
Sep 08 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
Vue中对拿到的数据进行A-Z排序的实例
Sep 25 Javascript
angularJs提交文本框数据到后台的方法
Oct 08 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
javascript 数组(list)添加/删除的实现
Dec 17 Javascript
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笔记之:文章中图片处理的使用
2013/04/26 PHP
将php数组输出html表格的方法
2014/02/24 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
JavaScript中实现继承的三种方式和实例
2015/01/29 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
深入理解Python3中的http.client模块
2017/03/29 Python
Sanic框架应用部署方法详解
2018/07/18 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
python enumerate内置函数用法总结
2020/01/07 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
Django封装交互接口代码
2020/07/12 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
元旦晚会邀请函
2014/01/27 职场文书
菜篮子工程实施方案
2014/03/08 职场文书
流动人口婚育证明
2014/10/19 职场文书
致接力运动员加油稿
2015/07/21 职场文书
教师教育教学随笔
2015/08/15 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript