SuperAPI AI 工具集

dropdown-menu

前端与建站

查看项目

更新于 10-15 16:43

技能介绍

用途:在列表项或卡片中构建下拉操作菜单、上下文菜单,正确处理 z-index 堆叠与点击外部关闭。

主要能力:解决列表项下拉菜单的三个常见缺陷——被父容器 overflow-hidden 裁剪、被同级卡片覆盖(跨堆叠上下文时 z-index 失效)、触发按钮点击时先关后开的重复切换。

核心用法:

  1. 点击外部检测使用 document.addEventListener("click", handleClickOutside),不要用 mousedown,否则会先于按钮 onClick 触发导致重复切换;在按钮 onClick 中调用 e.stopPropagation() 阻止文档监听器触发。
  2. 菜单打开时将整个父卡片层级抬升,如 className 中在 menuOpen 时用 z-30,否则 z-0,因为每张卡片自成一个堆叠上下文,菜单内的 z-20 只在卡内生效。
  3. 避免在包含下拉菜单的容器上使用 overflow-hidden,仅在可展开区域等必要处使用。
  4. 触发按钮与菜单项 onClick 均需 stopPropagation(),触发按钮外层使用 relative,下拉菜单使用 absolute 配合 top-full 或 bottom-full 定位。
  5. 定位可选右下(absolute right-0 top-full mt-1)、左下、右上、左上等组合。
  6. 若在具有不同 z-index 的堆叠项上显示 Tooltip,需将 Tooltip 渲染在列表循环之外,按悬停项计算位置,否则会被困在父级堆叠上下文中。

适用场景:React 列表、卡片网格中的操作菜单组件。限制:资料未提供安装命令、价格、平台兼容性等更多信息。