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

如何使用jQuery实现手风琴效果并默认展开第一个面板?

手风琴式问答页面实现方案

核心修改点

  • 修复CSS中内容区块激活状态未控制显示的问题
  • 实现页面加载时第一个问答默认展开
  • 优化交互逻辑,点击某一问答时自动关闭其他所有问答

完整HTML代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="content_list" style="display:block;">
  <li class="list_item">
    <div class="sub_title_wrapper">
      <h4 class="sub_title"><span class="symbol">•</span>Title</h4>
      <button class="open">V</button>
    </div>
    <ul class="sub_content">
      <li>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod nemo voluptates provident accusamus hic, sapiente, omnis quidem placeat asperiores dolorem esse iusto eius, dignissimos quam repellat ad. Eveniet, rem sapiente!
      </li>
    </ul>
  </li>
  <li class="list_item">
    <div class="sub_title_wrapper">
      <h4 class="sub_title"><span class="symbol">•</span>Title</h4>
      <button class="open">V</button>
    </div>
    <ul class="sub_content">
      <li>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod nemo voluptates provident accusamus hic, sapiente, omnis quidem placeat asperiores dolorem esse iusto eius, dignissimos quam repellat ad. Eveniet, rem sapiente!
      </li>
    </ul>
  </li>
  <li class="list_item">
    <div class="sub_title_wrapper">
      <h4 class="sub_title"><span class="symbol">•</span>Title</h4>
      <button class="open">V</button>
    </div>
    <ul class="sub_content">
      <li>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod nemo voluptates provident accusamus hic, sapiente, omnis quidem placeat asperiores dolorem esse iusto eius, dignissimos quam repellat ad. Eveniet, rem sapiente!
      </li>
    </ul>
  </li>
  <li class="list_item">
    <div class="sub_title_wrapper">
      <h4 class="sub_title"><span class="symbol">•</span>Title</h4>
      <button class="open">V</button>
    </div>
    <ul class="sub_content">
      <li>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod nemo voluptates provident accusamus hic, sapiente, omnis quidem placeat asperiores dolorem esse iusto eius, dignissimos quam repellat ad. Eveniet, rem sapiente!
      </li>
    </ul>
  </li>
  <li class="list_item">
    <div class="sub_title_wrapper">
      <h4 class="sub_title"><span class="symbol">•</span>Title</h4>
      <button class="open">V</button>
    </div>
    <ul class="sub_content">
      <li>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Quod nemo voluptates provident accusamus hic, sapiente, omnis quidem placeat asperiores dolorem esse iusto eius, dignissimos quam repellat ad. Eveniet, rem sapiente!
      </li>
    </ul>
  </li>
</ul>

调整后的CSS代码

.content_list .list_item {
  border-bottom: 1px solid #222;
}

.content_list .list_item .sub_title_wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 16px;
  cursor: pointer;
}

.content_list .list_item .sub_title_wrapper .open {
  width: 16px;
  height: 16px;
  background-size: cover;
  background-repeat: no-repeat;
  transition: 0.5s;
  transform: rotate(180deg);
  border: none;
  background: none;
  cursor: pointer;
}

.content_list .list_item .sub_title_wrapper .open.active {
  transform: rotate(0deg);
  color: #222;
}

.content_list .list_item .sub_title_wrapper .sub_title {
  cursor: pointer;
  font-size: 15px;
  color: #222;
}

.content_list .list_item .sub_title_wrapper .sub_title .symbol {
  display: none;
}

.content_list .list_item .sub_title_wrapper .sub_title.active {
  color: #000;
}

.content_list .list_item .sub_content {
  display: none;
  padding: 20px 16px;
}

.content_list .list_item .sub_content h4 {
  line-height: 1.5;
  font-weight: 700;
  margin-bottom: 8px;
}

.content_list .list_item .sub_content li {
  font-size: 15px;
  line-height: 1.5;
}

.content_list .list_item .sub_content.active {
  display: block; /* 新增:激活时显示内容 */
  color: #222;
}

优化后的JavaScript代码

// 页面加载完成后初始化第一个问答为展开状态
$(document).ready(function() {
  const firstItem = $(".list_item:first");
  firstItem.find(".open").addClass("active");
  firstItem.find(".sub_content").addClass("active").show();
  
  $(".sub_title_wrapper").on("click", function() {
    const currentParent = $(this).parent(".list_item");
    const currentContent = currentParent.find(".sub_content");
    const currentOpenBtn = currentParent.find(".open");
    const isCurrentActive = currentContent.hasClass("active");
    
    // 关闭所有兄弟项的内容及按钮状态
    currentParent.siblings().find(".sub_content").removeClass("active").slideUp();
    currentParent.siblings().find(".open").removeClass("active");
    
    // 处理当前项的展开/关闭逻辑
    if (isCurrentActive) {
      currentContent.removeClass("active").slideUp();
      currentOpenBtn.removeClass("active");
    } else {
      currentContent.addClass("active").slideDown();
      currentOpenBtn.addClass("active");
    }
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:20:28