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 相关文章推荐
js计算精度问题小结
Apr 22 Javascript
javascript监听鼠标滚轮事件浅析
Jun 05 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
Bootstrap每天必学之基础排版
Nov 20 Javascript
Bootstrap CSS布局之图像
Dec 17 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
React中的refs的使用教程
Feb 13 Javascript
vue的过滤器filter实例详解
Sep 17 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
Element el-button 按钮组件的使用详解
Feb 01 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(3)
2006/10/09 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
VBScript版代码高亮
2006/06/26 Javascript
javascript 必知必会之closure
2009/09/21 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
浅谈Python的垃圾回收机制
2016/12/17 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
一年级数学教学反思
2014/02/01 职场文书
颁奖晚会主持词
2014/03/25 职场文书
科学发展观活动总结
2014/08/28 职场文书
财务会计求职信范文
2015/03/20 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python
GO中sync包自由控制并发示例详解
2022/08/05 Golang