Pour les choses avec de nombreux processus, nous espérons utiliser des barres de processus pour les afficher en conséquence selon différentes étapes, ce qui est très intuitif et apporte une excellente expérience utilisateur aux utilisateurs Ci-dessous, je partagerai avec vous JavaScript. Implémentez la fonction révision processus affichage dynamique de l'état barre de progression Les amis qui en ont besoin peuvent se référer à
pour les choses avec de nombreux processus. j'espère utiliser la barre de processus pour afficher en conséquence selon différentes étapes, comme indiqué ci-dessous :
Le code html correspondant aux fonctions ci-dessus est le suivant :
<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>
La méthode utilisée ici est basée sur l'état du traitement, voici $status
, et la classe de style correspondante class="active"
est ajoutée à la balise <li> dans l'image d'arrière-plan de remplacement de position correspondante, c'est-à-dire remplacer les lignes de processus grises d'origine par des lignes de processus vertes. Autrement dit, vous devez définir le CSS correspondant après et avant le remplacement. Le CSS correspondant ici est le suivant (une partie de Assetsdefaultthreatrulesstyle.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; }
Après avoir défini le CSS correspondant, l'étape suivante consiste à écrivez js, selon Pour la valeur de $status, ajoutez simplement class au <li> correspondant. Le code js pour implémenter cette fonction est le suivant :
<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>
Après. en paramétrant comme ceci, changez le statut de $status , après avoir été "à réparer", le processus de la page Web est implémenté comme suit :
Afficher le code html de la page Web correspondante :
Vous pouvez voir que <li>
a été ajouté à la balise class="active"
correspondante. Le paramétrage est désormais réussi et la progression du processus est affichée dynamiquement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!