javascript - 折叠手风琴时如何隐藏手风琴的底部边框?
问题描述
当展开的 Accordion 折叠时,展开的 Accordion 的底部边框仍然可见。当折叠手风琴时,底部边框不应该是可见的。这是代码:https ://jsfiddle.net/cliffeee/dcxj4raL/2/
我不确定脚本是否错误或是否是 CSS。有没有办法隐藏边框底部?我怎样才能完全折叠手风琴(包括底部边框)?
cshtml:
<h2 class="accordion-toggle">Open Collapsible</h2>
<div id="anyId" class="collapse">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<h2 class="accordion-toggle">Open Section 1</h2>
<div class="collapse">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
查询:
var collapsible = document.getElementsByClassName("accordion-toggle");
for (var i = 0; i < collapsible.length; i++) {
collapsible[i].addEventListener("click", function (event) {
var currentClassList = event.currentTarget.classList;
if (currentClassList.contains('collapsed')) {
event.currentTarget.classList.remove("collapsed");
var content = event.currentTarget.nextElementSibling;
content.style.maxHeight = null;
} else {
for (var j = 0; j < collapsible.length; j++) {
collapsible[j].classList.remove("collapsed")
collapsible[j].nextElementSibling.style.maxHeight = null;
}
this.classList.toggle("collapsed");
var content = this.nextElementSibling;
if (content.style.maxHeight) {
content.style.maxHeight = null;
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
}
});
}
CSS:
.accordion-toggle {
background-color: #777;
color: white;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}
.collapsed, .accordion-toggle:hover {
background-color: #555;
}
.collapse {
padding: 0 18px;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
margin-bottom: -4px;
border-left: 2px solid #f1f1f1;
border-right: 2px solid #f1f1f1;
border-bottom: 2px solid #f1f1f1
}
解决方案
您可以通过将边框 css 从移动到仅使用 css 来解决它.collapse
:
.collapsed + .collapse {
border-left: 2px solid #f1f1f1;
border-right: 2px solid #f1f1f1;
border-bottom: 2px solid #f1f1f1
}
推荐阅读
- django - 在视图 django rest-framework 中更改呈现的表单 html
- python - Can someone show me the correct "Hello World" on ROS?
- reactjs - 第一次 useState 没有出现在 UI 上
- matlab - 使用残差时出错:输出参数过多
- plot - Plot 在 Visual Studio 代码中不起作用,但在 REPL 中起作用
- amazon-web-services - 没有这样的选项 --system 用于 pip install
- deployment - “deploy:mode”命名空间中没有定义命令
- java - 版本 2.5.5 的 Spring Boot 验证问题
- actions-on-google - 向 Alpha 通道提交助手操作返回 500 内部服务器错误
- instagram - Instagram Basic Display 应用审查期间开发人员角色不足