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 相关文章推荐
表单(FORM)的一些实用效果代码
Mar 25 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
javascript或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
May 31 Javascript
浅谈jquery的map()和each()方法
Jun 12 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 Javascript
使用React手写一个对话框或模态框的方法示例
Apr 25 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
JavaScript实现音乐导航效果
Nov 19 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 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
Terran历史背景
2020/03/14 星际争霸
浅谈php提交form表单
2015/07/01 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
php格式化时间戳
2016/12/17 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
PHP钩子实现方法解析
2019/05/21 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
canvas实现钟表效果
2017/02/13 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
Python实现的Kmeans++算法实例
2014/04/26 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
PHP面试题集
2016/12/18 面试题
工程造价自荐信
2013/10/09 职场文书
新员工欢迎词
2014/01/12 职场文书
环保建议书100字
2014/05/14 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers