Navbar
一个响应式导航头部,位于页面顶部,支持品牌、链接、导航、折叠菜单等。
安装
以上命令仅用于单独安装。如果以下情况,您可以跳过此步骤 @heroui/react 已全局安装。
导入
HeroUI 导出 7 个与导航栏相关的组件
- Navbar: 导航栏的主要组件。
- NavbarBrand: 用于品牌的组件。
- NavbarContent: 用于包裹导航栏项的组件。
- NavbarItem: 导航栏项的组件。
- NavbarMenuToggle: 用于切换导航栏菜单的组件。
- NavbarMenu: 用于包裹导航栏菜单项的组件。
- NavbarMenuItem: 导航栏菜单项的组件。
用法
静态
您可以使用 position 属性使导航栏成为静态定位(默认行为是 sticky)。
滚动时隐藏
可以通过使用 shouldHideOnScroll 属性在滚动时隐藏导航栏。
带菜单
您可以使用 NavbarMenuToggle 和 NavbarMenu 组件来显示可切换的菜单。
如果您想移除 open / close 动画,您可以将 disableAnimation={true} 属性传递给 Navbar 组件。
受控菜单
您可以使用 isMenuOpen 和 onMenuOpenChange 属性来控制导航栏菜单状态。
带边框
您可以使用 isBordered 属性为导航栏添加底部边框。
禁用模糊
导航栏默认带有模糊效果。您可以使用 isBlurred=false 属性禁用它。
带下拉菜单
可以使用 Dropdown 组件来显示作为导航栏项的下拉菜单。
带头像
带有头像和下拉菜单的导航栏示例。
使用搜索输入框
带有搜索输入框的导航栏示例。
自定义激活项
当 NavbarItem 处于激活状态时,它将具有 data-active 属性。您可以使用此属性来自定义它。
插槽 (Slots)
- base: 导航栏的主要插槽。它占据父元素的完整宽度,并包裹包括菜单在内的导航栏元素。
- wrapper: 包含导航栏元素的插槽,例如
brand、content和toggle。 - brand:
NavbarBrand组件的插槽。 - content:
NavbarContent组件的插槽。 - item:
NavbarItem组件的插槽。 - toggle:
NavbarMenuToggle组件的插槽。 - toggleIcon:
NavbarMenuToggle图标的插槽。 - menu:
NavbarMenu组件的插槽。 - menuItem:
NavbarMenuItem组件的插槽。
数据属性 (Data Attributes)
Navbar 在 base 元素上具有以下属性
- data-menu-open: 指示导航栏菜单是否打开。
- data-hidden: 指示导航栏是否隐藏。当
shouldHideOnScroll属性为true时使用。
NavbarContent
- data-justify: 导航栏内容的对齐方式。它考虑了正确的空间分布。
NavbarItem 在 base 元素上具有以下属性
- data-active: 指示导航栏项是否处于激活状态。当
isActive属性为true时使用。
NavbarMenuToggle 在 base 元素上具有以下属性
- data-open: 指示导航栏菜单是否打开。当
isMenuOpen属性为true时使用。 - data-pressed: 当导航栏菜单切换按钮被按下时。基于 usePress
- data-hover: 当鼠标悬停在导航栏菜单切换按钮上时。基于 useHover
- data-focus-visible: 当使用键盘聚焦导航栏菜单切换按钮时。基于 useFocusRing。
NavbarMenuItem 在 base 元素上具有以下属性
- data-active: 指示菜单项是否处于激活状态。当
isActive属性为true时使用。
API
Navbar Props (导航栏属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
children* | | |
height (高度) | | "4rem (64px)" |
position (位置) | | "sticky" |
maxWidth (最大宽度) | | "lg" |
parentRef (父元素引用) | | "window" |
isBordered (是否有边框) | | false |
isBlurred (是否模糊) | | true |
isMenuOpen (菜单是否打开) | | false |
isMenuDefaultOpen (菜单默认是否打开) | | false |
shouldHideOnScroll (滚动时是否应隐藏) | | false |
motionProps (动画属性) | | |
disableScrollHandler (禁用滚动处理) | | false |
disableAnimation (禁用动画) | | false |
classNames (类名) | |
Navbar Events (导航栏事件)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
onMenuOpenChange (菜单打开状态改变时) | | |
onScrollPositionChange (滚动位置改变时) | |
NavbarContent Props (导航栏内容属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
children* | | |
justify (对齐方式) | | "start" |
NavbarItem Props (导航栏项属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
children (子元素) | | |
isActive (是否激活) | | false |
NavbarMenuToggle Props (导航栏菜单切换按钮属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
icon (图标) | | |
isSelected (是否选中) | | false |
defaultSelected (默认选中) | | false |
srOnlyText (屏幕阅读器专用文本) | | "open/close navigation menu" (打开/关闭导航菜单) |
NavbarMenuToggle Events (导航栏菜单切换按钮事件)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
onChange (状态改变时) | |
NavbarMenu Props (导航栏菜单属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
children* | | |
portalContainer (传送门容器) | | "document.body" |
motionProps (动画属性) | |
NavbarMenuItem Props (导航栏菜单项属性)
| 属性 (Prop) | 类型 (Type) | 默认值 (Default) |
children (子元素) | | |
isActive (是否激活) | | false |

