Skip to content

移动端导航

@astryxdesign/core v0.7.1 · MobileNav

使用方法 ​

MobileNav 是从屏幕一侧滑入的对话框抽屉,不是底部弹层。MobileNavToggle 和它绑同一个 v-model:is-open。打开后焦点留在抽屉里,Escape 或点遮罩关闭,并回到原来的焦点。抽屉里面再开一层浮层时,Escape 先关最上面那一层。双指缩放留给浏览器,内容区仍可以竖着滚。

side 可以是 start、end 或 auto。auto 按打开时焦点的位置决定从哪一侧进入。顶栏的窄屏模式会自己创建这一对组件。

vue
<script setup lang="ts">
import { MobileNav, MobileNavToggle } from '@astryx-vue/core/MobileNav'
import { ref } from 'vue'

const open = ref(false)
</script>

<template>
  <MobileNavToggle v-model:is-open="open" controls="app-nav" />
  <MobileNav id="app-nav" v-model:is-open="open" header="菜单" side="start">
    <!-- 导航项 -->
  </MobileNav>
</template>

解剖

部分说明
导航遮罩铺满视口、承载移动导航抽屉的对话框遮罩。
抽屉从解析出的视口边缘滑入的着色面板。
页眉固定的一行,装着可选的页眉内容和关闭按钮。
内容装着导航内容的可滚动区域。
关闭按钮关闭导航抽屉的按钮。
开关按钮能配合 AppShell 的 Button,在移动视口上打开或关闭抽屉。

最佳实践 ​

指引实践
推荐开关的 controls 指向抽屉的 id,读屏能把按钮和对话框连起来。
推荐抽屉里放普通链接。不要再套一层 role="menu"。
避免不要用底部弹层来做这套导航。它是侧边抽屉。

示例 ​

基本抽屉

菜单按钮打开分组导航。

结束边抽屉

Settings
Settings

同一套抽屉从结束边滑入。

无标题

不传标题时,抽屉里只剩导航项和关闭按钮。