You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让嵌套式Collapsible按钮页面加载时全部展开?

实现折叠按钮初始全部展开的效果

需求:页面加载时所有Collapsible按钮默认处于展开状态,用户可随时点击任意按钮切换展开/收起状态;现有代码中点击闭合的父按钮会自动展开子元素,仅需微调实现初始展开效果。

修改后的完整代码

JavaScript

const collapsibles = document.querySelectorAll(".collapsible");
collapsibles.forEach(collapsible => {
    collapsible.addEventListener("click", function() {
        open(this);
        const children = this.nextElementSibling.querySelectorAll('.collapsible');
        children.forEach(open);
    });
    // 初始化调用open函数,实现默认展开
    open(collapsible);
});

function open(element) {
    element.classList.toggle("active");
    var content = element.nextElementSibling;
    if (content.style.display === "block") {
        content.style.display = "none";
    } else {
        content.style.display = "block";
    }
}

CSS

.collapsible {
  background-color: #0486C1;
  color: white;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
}

.active,
.collapsible:hover {
  background-color: #254062;
}

.collapsible::after {
  content: '\002B';
  margin-left: 5px;
}

.collapsible.active::after {
  content: "\2212";
}

.content {
  padding: 0 18px;
  display: none;
  overflow: hidden;
  background-color: #E2E2E2;
  transition: max-height 0.2s ease-out;
}

p {
  color: #000000;
}

HTML

<button type="button" class="collapsible">Act 1</button>
<div class="content">
   <button type="button" class="collapsible">Scene 1</button>
   <div class="content">
      <button type="button" class="collapsible">Snippet 1</button>
      <div class="content">
         <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>
      <button type="button" class="collapsible">Snippet 2</button>
      <div class="content">
         <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>
      <button type="button" class="collapsible">Snippet 3</button>
      <div class="content">
         <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>
   </div>
   <button type="button" class="collapsible">Scene 2</button>
   <div class="content">
      <button type="button" class="collapsible">Snippet 1</button>
      <div class="content">
         <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>
      <button type="button" class="collapsible">Snippet 2</button>
      <div class="content">
         <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>
      <button type="button" class="collapsible">Snippet 3</button>
      <div class="content">
         <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>
   </div>
</div>

修改说明

在原JavaScript代码的遍历逻辑中,新增open(collapsible)调用,页面加载时会对所有层级的折叠按钮执行一次展开操作:

  • 为按钮添加active类,切换按钮右侧的符号(从+变为-)
  • 将按钮对应的内容区域display属性设为block,实现内容展开

内容的提问来源于stack exchange,提问作者Adrian Fridge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:24:56