JavaScript實現(xiàn)審核流程狀態(tài)的動態(tài)顯示進度條
對于有很多流程的東西,我們希望能夠根據(jù)不同的階段,用流程條對應地進行顯示,如下所示:

以上功能對應的html代碼如下:
<div class="col-md-12 col-lg-3">
<div class="panel panel-default">
<div class="tit06">
<h3>漏洞處理狀態(tài)</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>
這里采用的方法是根據(jù)處理的狀態(tài),這里是$status,對應的在相應的<li>的標簽中增加樣式類 class="active",而樣式類active中實現(xiàn)的是在對應位置替換背景圖片,即將原來的灰色流程線條替換成綠色的流程線條。即需要設置對應的替換后和替換前的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,根據(jù)$status的值,在對應的<li>中添加class即可,實現(xiàn)此功能的js代碼如下:
<script type="text/javascript">
/*根據(jù)處理狀態(tài),添加或刪除對應的樣式名*/
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的狀態(tài),為“待修復”后,網(wǎng)頁流程實現(xiàn)如下:

查看對應的網(wǎng)頁html代碼:

可以看到在對應的<li>標簽中添加了class="active",至此設置成功,實現(xiàn)動態(tài)顯示流程進度。
以上所述是小編給大家介紹的JavaScript實現(xiàn)審核流程狀態(tài)的動態(tài)顯示進度條,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- JavaScript canvas繪制圓形加載進度條
- 詳解JavaScript+Canvas繪制環(huán)形進度條
- JavaScript實現(xiàn)可動的canvas環(huán)形進度條
- js+HTML5 canvas 實現(xiàn)簡單的加載條(進度條)功能示例
- JS實現(xiàn)進度條動態(tài)加載特效
- JavaScript實現(xiàn)簡單動態(tài)進度條效果
- 基于 D3.js 繪制動態(tài)進度條的實例詳解
- php+javascript實現(xiàn)的動態(tài)顯示服務器運行程序進度條功能示例
- JavaScript?canvas繪制動態(tài)圓環(huán)進度條
相關文章
JavaScript判斷圖片是否已經(jīng)加載完畢的方法匯總
在網(wǎng)上有很多關于判斷圖片是否已經(jīng)加載完畢的文章,但是有的瀏覽器并不適合,下面小編給大家分享一些有關JavaScript判斷圖片是否已經(jīng)加載完畢的方法匯總,需要的朋友參考下2016-02-02
如何用JavaScript實現(xiàn)一個數(shù)組惰性求值庫
這篇文章主要介紹了如何用JavaScript實現(xiàn)一個數(shù)組惰性求值庫,對惰性求值感興趣的同學,可以參考下2021-05-05
javascript中數(shù)組(Array)對象和字符串(String)對象的常用方法總結
這篇文章主要介紹了javascript中數(shù)組(Array)對象和字符串(String)對象的常用方法,結合實例形式總結分析了javascript中關于數(shù)組和字符串的常用函數(shù)與使用技巧,需要的朋友可以參考下2016-12-12

