跳到正文

折叠面板

手风琴或多开的折叠列表。展开状态用 .is-open 表示,库负责切换、无障碍属性和键盘。

带行为 核心包 1 个事件

示例

内容一

内容二

在线试用 Markdown 版

代码

<div class="zh-collapse" data-mode="single">
  <div class="zh-collapse-item is-open">
    <h4 class="zh-collapse-h"><button class="zh-collapse-trigger" type="button"><span class="lead">第一项</span><i data-i="chevron-right" class="zh-collapse-chev"></i></button></h4>
    <div class="zh-collapse-panel"><div class="zh-collapse-inner"><div class="zh-collapse-content">内容一</div></div></div>
  </div>
  <div class="zh-collapse-item">
    <h4 class="zh-collapse-h"><button class="zh-collapse-trigger" type="button"><span class="lead">第二项</span><i data-i="chevron-right" class="zh-collapse-chev"></i></button></h4>
    <div class="zh-collapse-panel"><div class="zh-collapse-inner"><div class="zh-collapse-content">内容二</div></div></div>
  </div>
</div>

属性

属性用在取值说明
data-mode.zh-collapsesingle | multiple(默认)single:同时只展开一项;multiple:各项独立
is-open.zh-collapse-itemclass初始展开的项加上这个类
disabled.zh-collapse-trigger布尔禁用某一项,不可点击也不参与方向键

事件

事件触发于detail说明
zh:collapse-toggle.zh-collapse{ item, open }某一项展开或收起时触发(冒泡)

样式类

zh-collapse zh-collapse-item zh-collapse-trigger zh-collapse-panel

无障碍

  • 触发按钮带 aria-expanded / aria-controls,面板带 role="region" 与 aria-labelledby
  • 收起的面板加 inert,内部内容不会被键盘聚焦
  • 方向键上下在标题间移动,Home / End 跳到首尾

常见问题

折叠面板是什么?

手风琴或多开的折叠列表。展开状态用 .is-open 表示,库负责切换、无障碍属性和键盘。

怎么使用折叠面板?

先在页面里引入 zhaoui.css 和 zhaoui.js(放在 </body> 前,不加 defer),再照本页「用法」里的标记书写。

折叠面板有哪些事件?

zh:collapse-toggle(某一项展开或收起时触发(冒泡))。

折叠面板支持键盘和读屏吗?

触发按钮带 aria-expanded / aria-controls,面板带 role="region" 与 aria-labelledby;收起的面板加 inert,内部内容不会被键盘聚焦;方向键上下在标题间移动,Home / End 跳到首尾。

折叠面板需要依赖框架吗?

不需要。ZhaoUI 是原生 HTML、CSS 和 JavaScript,不依赖 jQuery、Vue 或 React。