#components 相关 - [[导航设计 Navigation Design]] ## 概念 还有一个别名叫做:[Fly-out Menus | w3c.org](<[Fly-out Menus | Web Accessibility Initiative (WAI) | W3C](https://www.w3.org/WAI/tutorials/menus/flyout/)>) 下拉菜单一般是功能的合集,容易与[[选择框 Select]] 混淆(select 用于表单中的信息输入)。Mac 顶部的那些就是应用下拉菜单([Application Menu](<[Application Menu Example & Code | Web Accessibility Initiative (WAI) | W3C](https://www.w3.org/WAI/tutorials/menus/application-menus-code/)>)),他可以是新建或者撤销等等,也可以是一个链接(例如帮助,跳转到网站)。 - [[Ant Design]] - 当页面上的操作命令过多时,用此组件可以收纳操作元素。点击或移入触点,会出现一个下拉菜单。可在列表中进行选择,并执行相应的命令。 - [[Atlassian Design System]] - A dropdown menu displays a list of actions or options to a user. - [[Carbon Design System#^72b1d2]] - Dropdowns present a list of options from which a user can select one option, or several. A selected option can represent a value in a form, or can be used as an action to filter or sort existing content. ### 与 Select 的区别 [[Carbon Design System#^917274]] ## 最佳实践 ### 何时不用? - 如果有两个选项可供选择,最好不要使用下拉菜单。在这种情况下,使用[[单选 Radio]] 组代替。 - 不要嵌套下拉框或用它们来显示过于复杂的信息。保持选项选择尽可能直接。 ### 巨型下拉框 #### Don't - 避免将重要的、经常使用的项目放在靠近巨型下拉式导航的地方(例如搜索栏、CTA、购物车图标)(如果悬停)。 - 避免在巨型下拉式导航中的多个子导航出现在彼此之后,并出现延迟(如果悬停)。 - 避免用多种功能使类别标题过载。 - 在类别标题下划线,以确定它们是通往该类别页面的链接 - 如果可以,在每个子类别内添加一个 "主页 "链接或 "浏览全部 "按钮,而不是直接链接到类别。 - 避免水平叠加,考虑用垂直手风琴和分割菜单来取代它们。 - 添加一个图标,以表明一个类别的标题在点击后会触发一个巨大的下拉菜单(例如,下拉按钮),并始终使其足够大,以便舒适地敲击(例如,50×50px)。 - 在以下情况下避免长的淡入/淡出过渡避免在巨型下拉菜单出现/消失时出现长时间的淡入/淡出过渡(最多 300ms)。 - 考虑测试一个结构化的指南或导航查询("I-want-to "导航模式)来代替或补充巨型下拉。 - 如果可能的话,避免巨型下拉式的悬停菜单。 ## 资源 - [Frustrating Design Patterns: Mega-Dropdown Hover Menus — Smashing Magazine](https://www.smashingmagazine.com/2021/05/frustrating-design-patterns-mega-dropdown-hover-menus/) 一篇文章很详细的说了网站上 Mega-Dropdown 各种不好的体验![](https://chi-1259224060.cos.ap-shanghai.myqcloud.com/Pasted%20image%2020210606164451.png)