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

如何实现默认展开的手风琴(Accordion)菜单,点击标题可收起

解决方案

你只需要在原有JS逻辑基础上新增初始化代码,就能实现默认全部展开、点击收起的效果,原有CSS、HTML代码无需大幅改动:

1. 修改后的JS代码

var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
  // 新增初始化逻辑:默认给所有手风琴标题加active类,对应展开状态
  acc[i].classList.add("active");
  var panel = acc[i].nextElementSibling;
  // 初始化时直接设置面板高度为内容实际高度,默认展开
  panel.style.maxHeight = panel.scrollHeight + "px";
  // 原有点击逻辑完全保留,无需改动
  acc[i].addEventListener("click", function() {
    this.classList.toggle("active");
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight) {
      panel.style.maxHeight = null
    } else {
      panel.style.maxHeight = panel.scrollHeight + "px";
    }
  });
}

2. 原有CSS代码无需调整

你现有的CSS逻辑完全适配修改后的效果:默认手风琴标题带有active类,右侧会显示减号对应展开状态,点击收起后active类移除,显示加号,符合常规交互认知。

3. HTML代码保持原样即可

不需要修改现有HTML结构。

内容的提问来源于stack exchange,提问作者Burak Keles

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:45:05