【发布时间】:2020-03-28 21:13:33
【问题描述】:
我正在尝试创建一个 css 圆圈的进度条,其中单击每个圆圈(如 1、2、3)后,所有三个圆圈及其连接线将被红色填充,如果返回如 3、2 , 1 那么颜色应该被移除。
HTML:
<div class="row well" id="rows">
<ul id="progressbar" class="progressbar">
<li class="cir danger">THOUGHFUL</li>
<li class="cir">PASSION</li>
<li class="cir">POWER OF DESIGN</li>
<li class="cir">BUILDING RELATIONSHIPS</li>
<li class="cir">ENHANCE HUMAN INTERATION</li>
</ul>
</div>
JS:
var header = document.getElementById("rows");
var bar = document.getElementsByClassName("progressbar");
var btns = header.getElementsByClassName("cir");
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener("click", function () {
var danger = document.getElementsByClassName("danger");
danger[0].className = danger[0].className.replace("danger", "");
this.className += " danger";
});
}
参考上图,如果我单击圆圈 3,则圆圈 1、2、3 应为红色,然后如果我单击圆圈 2,则圆圈 3 应为白色,1 和 2 应为红色,反之亦然。
我试图通过 JS 来实现它,但是 classnotfound 错误。
对此的任何帮助将不胜感激。
【问题讨论】:
-
你能发布完整的错误
-
现在没有错误,我添加了错误的类名,现在红色填充不起作用
-
您需要定位上一个兄弟姐妹和下一个兄弟姐妹,以确保以前的兄弟姐妹被着色,并且任何之后的兄弟姐妹都被脱色。有关定位上一个和下一个兄弟姐妹的帮助,请参阅How to find all Siblings of the currently selected DOM object。
-
另外,GIF 是否只是为了让您移动光标,因为它似乎没有比图像更有帮助?
-
是的,gif 在这里不起作用,我已经将视频转换为 gif,我通过你分享的链接获得了但是我怎样才能让它们着色,你能请教一下吗?
标签: javascript html css