主要有3条线路。通过点击主线,之前隐藏的列表退出,--active类叠加在上面,opacity类应用到其余的主线。问题是,如果您打开另一条主线,则 opacity 类开始在活动线上重叠并在第三行崩溃(在示例中您可以看到发生了什么)。建议一种算法来避免这种情况。应该可以一次打开多个选项卡,当您关闭所有选项卡时,一切都应该恢复到默认状态。
https://jsfiddle.net/6dgxv74n/
不幸的是,我不知道如何添加 jquery 代码,所以工作示例在链接中
.main {
padding: 5px 10px;
background-color: #fff;
border: 1px solid #333;
border-radius: 12px;
}
.main--active {
background-color: #ccc;
}
.opacity {
opacity: 0.4;
}
<div class="main">main row</div>
<ul class="hidden">
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
</ul>
<div class="main">main row</div>
<ul class="hidden">
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
</ul>
<div class="main">main row</div>
<ul class="hidden">
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
<li>subrow</li>
</ul>
解决方案
如果很快,以一种简单的方式,我理解正确:https ://jsfiddle.net/y21evzbt/2/
总是将子元素包装在单独的块中,那么问题就会更少