SuperAPI AI 工具集

expandable-card

前端与建站

查看项目

更新于 10-15 17:12

技能介绍

用途:构建可展开/折叠的卡片组件,用于手风琴、可展开面板、折叠内容区。核心思路是绕开 height:auto 无法动画的限制,改用 CSS grid 行高过渡。

主要能力:折叠态用 grid-rows-[0fr] 配合 overflow-hidden 得到 0 高度,展开态用 grid-rows-[1fr] 得到内容自然高度,从而在 auto 高度间平滑过渡。提供头部点击切换、ChevronDown 图标旋转、可选阴影变化等效果。

使用方式:组件以 "use client" 声明并用于 React;用 useState 维护 expanded 状态(可初始展开或折叠);头部绑定 onClick 切换状态并加 cursor-pointer 与 hover 样式;内容容器加 grid transition-all 与 grid-rows-[1fr]/[0fr],内层必须有 overflow-hidden 包裹且为动画必需。图标用 transition-transform 实现旋转。

适用场景:手风琴(多卡片时用 expandedId 记录并切换)、嵌套交互内容面板。

限制与注意:内层 overflow-hidden 包装为必需,否则动画失效;链接、执行非切换动作的按钮、表单输入等交互元素需加 onClick 的 stopPropagation,避免误触发展开/折叠;无障碍上建议加 role="button"、tabIndex、aria-expanded,并支持 Enter 与空格键。时长参考:150ms 小卡片、200ms 图标旋转、300ms 内容展开(推荐)、500ms 大内容区。资料未提供安装命令、费用、兼容范围等信息。