最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

通过js实现流程动态显示

来源:动视网 责编:小采 时间:2020-11-27 19:36:48
文档

通过js实现流程动态显示

通过js实现流程动态显示:对于有很多流程的东西,我们希望能够根据不同的阶段,用流程条对应地进行显示,如下所示:以上功能对应的html代码如下: <p class="col-md-12 col-lg-3"> <p class="panel panel-default">
推荐度:
导读通过js实现流程动态显示:对于有很多流程的东西,我们希望能够根据不同的阶段,用流程条对应地进行显示,如下所示:以上功能对应的html代码如下: <p class="col-md-12 col-lg-3"> <p class="panel panel-default">
 对于有很多流程的东西,我们希望能够根据不同的阶段,用流程条对应地进行显示,如下所示:

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

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

这里采用的方法是根据处理的状态,这里是$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; }

其中用到的jpg资源链接:https://download.csdn.net/download/u012063507/10280748

设置好对应的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的状态,为“待修复”后,网页流程实现如下:

查看对应的网页html代码:


可以看到在对应的<li>标签中添加了class="active",至此设置成功,实现动态显示流程进度。
本文介绍了js实现流程动态显示,更多相关内容请关注Gxl网。

文档

通过js实现流程动态显示

通过js实现流程动态显示:对于有很多流程的东西,我们希望能够根据不同的阶段,用流程条对应地进行显示,如下所示:以上功能对应的html代码如下: <p class="col-md-12 col-lg-3"> <p class="panel panel-default">
推荐度:
标签: 流程 步骤 动态
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top