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

如何为Accordion手风琴菜单添加展开(+)与收起(-)图标

给手风琴菜单添加展开/收起图标

可以通过CSS伪元素结合类切换的方式实现,不需要额外添加HTML元素,步骤如下:


1. 调整HTML结构

给默认展开的第一个.question添加active类,对应它的.answer默认显示:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>

<div id="faq_slide">
  <div class="question active">First Question</div>
  <div class="answer">Lorem ipsum dolor sit amet.</div>
  <div class="question">Second Question</div>
  <div class="answer">Lorem ipsum dolor sit amet.</div>
  <div class="question">Third Question</div>
  <div class="answer">Lorem ipsum dolor sit amet.</div>
</div>

2. 更新CSS样式

利用::after伪元素生成图标,通过active类切换图标内容,同时调整布局让图标靠右:

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");
body {
  font-family: "Inter", sans-serif;
  padding: 20px;
}

.question {
  color: #555;
  padding: 15px 40px 15px 15px; /* 右侧留空间放图标 */
  font-weight: 700;
  font-size: 16px;
  border: 1px solid #ccc;
  background: #efefef;
  position: relative; /* 让伪元素基于此定位 */
}

/* 默认显示+图标 */
.question::after {
  content: "+";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;
  font-weight: bold;
}

/* 活跃状态显示-图标 */
.question.active::after {
  content: "-";
}

.question:hover {
  cursor: pointer;
}

.answer {
  color: #777;
  padding: 15px;
  font-weight: 400;
  font-size: 13px;
  border: 1px solid #ccc;
  border-top: none;
}

3. 修改JavaScript逻辑

点击时切换当前.question的active类,同时移除其他.question的active类:

$("#faq_slide .answer").not(":first").hide();
$("#faq_slide .question").click(function() {
  const $answer = $(this).next(".answer");
  const isVisible = $answer.is(":visible");
  
  if (isVisible) {
    $answer.slideUp(300);
    $(this).removeClass("active");
  } else {
    // 收起其他所有answer,移除它们的active类
    $("#faq_slide .answer").slideUp(300);
    $("#faq_slide .question").removeClass("active");
    
    // 展开当前answer,添加active类
    $answer.slideDown(300);
    $(this).addClass("active");
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:01:33