前端手写代码面试题
目录

实现一个简单的手风琴 (Accordion)

· 约 5 分钟读完 · 第 91 / 125 章

推荐答案

本题详细解读

HTML 结构

  • <div class="accordion">: 这是手风琴的容器,包含了所有的手风琴项。
  • <div class="accordion-item">: 每个手风琴项,包含一个标题和内容。
  • <div class="accordion-header">: 手风琴项的标题部分,用户可以点击它来展开或折叠内容。
  • <div class="accordion-content">: 手风琴项的内容部分,默认是隐藏的,当用户点击标题时会显示。

CSS 样式

  • .accordion: 设置手风琴的宽度和居中显示。
  • .accordion-item: 设置每个手风琴项的边框和外边距。
  • .accordion-header: 设置标题的样式,包括背景颜色、内边距和鼠标指针样式。
  • .accordion-content: 设置内容的样式,默认情况下内容是不可见的。
  • .accordion-item.active .accordion-content: 当手风琴项处于激活状态时,内容会显示出来。

JavaScript 逻辑

  • document.querySelectorAll('.accordion-header'): 获取所有手风琴项的标题。
  • header.addEventListener('click', () => {...}): 为每个标题添加点击事件监听器。
  • accordionItem.classList.toggle('active'): 当用户点击标题时,切换手风琴项的激活状态,从而显示或隐藏内容。

通过这种方式,用户可以点击手风琴的标题来展开或折叠内容,实现了一个简单的手风琴效果。