手风琴
手风琴允许用户在页面上显示和隐藏相关内容的部分。
简介
Joy UI 提供了四个与手风琴相关的组件
第一个手风琴的内容。
第二个手风琴的内容。
第三个手风琴的内容。
<AccordionGroup>
<Accordion>
<AccordionSummary>Title</AccordionSummary>
<AccordionDetails>Content</AccordionDetails>
</Accordion>
</AccordionGroup>
Playground
基础
import Accordion from '@mui/joy/Accordion';
import AccordionDetails from '@mui/joy/AccordionDetails';
import AccordionGroup from '@mui/joy/AccordionGroup';
import AccordionSummary from '@mui/joy/AccordionSummary';
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
受控手风琴
使用 expanded
属性来控制手风琴的展开状态,并通过 onChange
属性监听展开事件。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
禁用
使用 disabled
属性来禁用手风琴触发器。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
移除分隔线
在 Accordion Group 组件上使用 disableDivider
属性来隐藏手风琴之间的分隔线。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
动画化展开
使用 transition
属性来动画化展开。如果希望初始状态和展开状态的过渡相同,则该值可以是字符串;如果希望自定义每个状态的过渡,则该值可以是对象。
对象值可以包含以下键
initial
:手风琴关闭时的过渡expanded
:手风琴打开时的过渡
AccordionGroup 支持 transition
属性来自定义面板的动画。您可以提供一个字符串值或一个对象来微调初始状态和展开状态的动画。
当然可以!顺便说一句,它是纯 CSS。
面板是一个 CSS Grid,可以通过 grid-template-rows
属性进行过渡。
<AccordionGroup transition="0.2s ease">
指示器
使用 indicator
属性来自定义手风琴的指示器。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
展开时的样式
在 AccordionGroup 上使用 sx
属性一次性设置所有手风琴的样式。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
用户设置
此示例展示了如何自定义手风琴并使用其他组件制作各种组合。
可访问性
手风琴的内置可访问性遵循 WAI-ARIA 创作实践。
- 手风琴概要有一个根槽位 (
div
),可以更改,例如根据手风琴的层次结构使用h3
。 - 手风琴概要包含一个带有
aria-expanded
和aria-controls
属性的按钮。 - 手风琴详情包含一个带有
role="region"
和aria-labelledby
属性的 div。
无样式
使用 Base UI Accordion 完全掌控组件的设计,无需覆盖 Material UI 或 Joy UI 样式。此组件的无样式版本是需要重度自定义和更小捆绑包大小的理想选择。
API
请参阅下面的文档,以获得此处提及的组件的所有可用属性和类的完整参考。