底部导航
v-bottom-navigation
组件是一个侧边栏的替代方案。它主要用于移动端,并有两个变量,图标+文本和转变。
用例
尽管底部导航栏原应与 vue-router
配合使用,但你也可以使用active.sync
属性来以编程方式控制按钮的激活状态。你可以使用按钮的 value
标签来更改它的值。
template script
<template>
<v-bottom-navigation
v-model="bottomNav"
>
<v-btn value="recent">
<span>Recent</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn value="favorites">
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn value="nearby">
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
</template>
<script>
export default {
data () {
return {
bottomNav: 'recent',
}
},
}
</script>
API
从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。
示例
下面是一些简单到复杂的例子。
颜色
color
属性会给底部导航栏的背景应用颜色。建议使用 light
和 dark
属性来提高与文本的对比度。
template script
<template>
<v-bottom-navigation
:value="activeBtn"
color="purple lighten-1"
>
<v-btn>
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn>
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn>
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
</template>
<script>
export default {
data () {
return {
activeBtn: 1,
}
},
}
</script>
扩大
如果 v-bottom-navigation
有 grow
属性,其内的按钮会扩大并填满可用空间。
template script
<template>
<v-bottom-navigation
:value="activeBtn"
grow
color="teal"
>
<v-btn>
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn>
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn>
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
</template>
<script>
export default {
data () {
return {
activeBtn: 1,
}
},
}
</script>
水平布局
horizontal
属性将导航文本置于与图标水平的附近位置。
template script
<template>
<v-bottom-navigation
:value="activeBtn"
color="primary"
horizontal
>
<v-btn>
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn>
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn>
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
</template>
<script>
export default {
data () {
return {
activeBtn: 1,
}
},
}
</script>
变换
shift
属性将在按钮没被激活时隐藏它的文本。需用 <span>
包围 v-btn
的文本。
template script
<template>
<v-bottom-navigation
v-model="bottomNav"
dark
shift
>
<v-btn>
<span>Video</span>
<v-icon>mdi-television-play</v-icon>
</v-btn>
<v-btn>
<span>Music</span>
<v-icon>mdi-music-note</v-icon>
</v-btn>
<v-btn>
<span>Book</span>
<v-icon>mdi-book</v-icon>
</v-btn>
<v-btn>
<span>Image</span>
<v-icon>mdi-image</v-icon>
</v-btn>
</v-bottom-navigation>
</template>
<script>
export default {
data () {
return {
bottomNav: 3,
}
},
computed: {
color () {
switch (this.bottomNav) {
case 0: return 'blue-grey'
case 1: return 'teal'
case 2: return 'brown'
case 3: return 'indigo'
}
},
},
}
</script>
Vuetify Medium
Find guides, articles and tutorials on the official Vuetify publication
ads by Vuetify
](https://medium.com/vuetify?ref=vuetifyjs.com)
开关
v-bottom-navigation
的显示状态可使用 input-value
属性来控制。你也可以使用 v-model
来控制当前已经激活的按钮。
template script
<template>
<div class="overflow-hidden">
<div class="text-center mb-2">
<v-btn
text
color="deep-purple"
@click="showNav = !showNav"
>
Toggle Nav
</v-btn>
</div>
<v-bottom-navigation
v-model="activeBtn"
:input-value="showNav"
color="indigo"
>
<v-btn>
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn>
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn>
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
</div>
</template>
<script>
export default {
data () {
return {
activeBtn: 1,
showNav: true,
}
},
}
</script>
滚动时隐藏
当目标元素滚动时,“滚动时隐藏”会隐藏 v-bottom-navigation
。
template
<template>
<v-card
class="overflow-hidden mx-auto"
height="200"
max-width="500"
>
<v-bottom-navigation
scroll-target="#scroll-area-1"
hide-on-scroll
absolute
horizontal
>
<v-btn text color="deep-purple accent-4">
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn text color="deep-purple accent-4">
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn text color="deep-purple accent-4">
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
<v-sheet
id="scroll-area-1"
class="overflow-y-auto"
max-height="600"
>
<v-container style="height: 1500px;">
</v-container>
</v-sheet>
</v-card>
</template>
滚动阈值
scroll-threshold
属性可以自定义触发 v-bottom-navigation
消失的滚动阈值。
template
<template>
<v-card
class="overflow-hidden mx-auto"
height="200"
max-width="500"
>
<v-bottom-navigation
scroll-target="#scroll-area-2"
hide-on-scroll
scroll-threshold="500"
absolute
color="white"
horizontal
>
<v-btn>
<span>Recents</span>
<v-icon>mdi-history</v-icon>
</v-btn>
<v-btn>
<span>Favorites</span>
<v-icon>mdi-heart</v-icon>
</v-btn>
<v-btn>
<span>Nearby</span>
<v-icon>mdi-map-marker</v-icon>
</v-btn>
</v-bottom-navigation>
<v-sheet
id="scroll-area-2"
class="overflow-y-auto"
max-height="600"
>
<v-container style="height: 1500px;">
</v-container>
</v-sheet>
</v-card>
</template>