【发布时间】:2020-05-08 01:14:34
【问题描述】:
我正在尝试制作一个步骤进度条。当我使用 css 计数器时,它从 2 开始,然后变成 2 4 6 8 10 12。我希望它改为 0 2 4 6 8 10。我尝试将计数器重置为 0,但在所有元素上将其更改为 0。
这是我的代码
<div>
<ul className="progressbar">
<li id="0" onClick={ ()=> {this.changeColor(0)}} className=""></li>
<li id="2" onClick={ ()=> {this.changeColor(2)}} className=""></li>
<li id="4" onClick={ ()=> {this.changeColor(4)}} className=""></li>
<li id="6" onClick={ ()=> {this.changeColor(6)}} className=""></li>
<li id="8" onClick={ ()=> {this.changeColor(8)}} className=""></li>
<li id="10" onClick={ ()=> {this.changeColor(10)}} className=""></li>
</ul>
</div>
它的CSS:
.container {
width: 600px;
margin: 100px auto;
}
.progressbar {
counter-reset: step;
}
.progressbar li {
list-style-type: none;
width: 15%;
float: left;
font-size: 12px;
position: relative;
text-align: center;
text-transform: uppercase;
color: #7d7d7d;
}
.progressbar li:before {
width: 30px;
height: 30px;
content: counter(step);
counter-increment: step 2;
line-height: 30px;
border: 2px solid #7d7d7d;
display: block;
text-align: center;
margin: 0 auto 10px auto;
border-radius: 50%;
background-color: white;
}
.progressbar li:after {
width: 100%;
height: 2px;
content: '';
position: absolute;
background-color: #7d7d7d;
top: 15px;
left: -50%;
z-index: -1;
}
.progressbar li:first-child:after {
content: none;
}
.progressbar li.active:before {
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
margin-top: -4px;
background-color: #FF5A66;
border-color: #FF5A66;
color: white;
}
改变一个元素的className的方法来高亮onClick
changeColor = (id) => {
var value1 = document.getElementById("0");
var value2 = document.getElementById("2");
var value3 = document.getElementById("4");
var value4 = document.getElementById("6");
var value5 = document.getElementById("8");
var value6 = document.getElementById("10");
if (id == 0) {
console.log(id);
value1.className = "active";
value2.className = "";
value3.className = "";
value4.className = "";
value5.className = "";
value6.className = "";
this.setState({
imageToShow: "images/icons/blob/good-blob.svg",
textToShow: "I'm good"
});
}
}
【问题讨论】:
-
也发布你的 changeColor 方法
标签: javascript html css reactjs jsx