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限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
javascript中简单的进制转换代码实例
Oct 26 Javascript
用js将内容复制到剪贴板兼容浏览器
Mar 18 Javascript
浅谈javascript对象模型和function对象
Dec 26 Javascript
使用js画图之饼图
Jan 12 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
Mar 06 Javascript
Bootstrap表单布局样式代码
May 31 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
layDate插件设置开始和结束时间
Nov 15 Javascript
原生JS实现随机点名项目的实例代码
Apr 30 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 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处理Oracle的CLOB实例
2014/11/03 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
php获取excel文件数据
2017/04/21 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
Python 将pdf转成图片的方法
2018/04/23 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
美国羊皮公司:Overland
2018/01/15 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
质量月活动策划方案
2014/03/10 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
Vue过滤器(filter)实现及应用场景详解
2021/06/15 Vue.js
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript