如何使用 vuetify 制作移动响应式导航栏

Posted

技术标签:

【中文标题】如何使用 vuetify 制作移动响应式导航栏【英文标题】:How to make mobile responsive navbar using vuetify 【发布时间】:2021-02-03 16:41:51 【问题描述】:

我有一个 vuetify 选项卡组件,我希望将它用作我的导航菜单。我想使用 vuetify 创建一个响应式导航栏。这是我的代码。

navbar.vue


<template>
    <v-card>
      <v-toolbar
        color="cyan"
        dark
        flat
      >
        <v-app-bar-nav-icon></v-app-bar-nav-icon>
  

    enter code here
        <v-toolbar-title>Your Dashboard</v-toolbar-title>
  
        <v-spacer></v-spacer>
  
        <v-btn icon>
          <v-icon>mdi-magnify</v-icon>
        </v-btn>
  
        <v-btn icon>
          <v-icon>mdi-dots-vertical</v-icon>
        </v-btn>
  
        <template v-slot:extension>
          <v-tabs
            v-model="tab"
            align-with-title
          >
            <v-tabs-slider color="yellow"></v-tabs-slider>
  
            <v-tab
              v-for="item in items"
              :key="item"
            >
               item 
            </v-tab>
          </v-tabs>
        </template>
      </v-toolbar>
  
      <v-tabs-items v-model="tab">
        <v-tab-item
          v-for="item in items"
          :key="item"
        >
         
        </v-tab-item>
      </v-tabs-items>
    </v-card>
</template>

<script>
export default 
  el: '#app',
  data () 
    return 
      tab: null,
      items: [
        'web', 'shopping', 'videos', 'images', 'news',
      ],
    
  

</script>

【问题讨论】:

【参考方案1】:

你需要做一些改变,而不是工具栏,使用出现。将您的 ab 内容移动到部分。请查看完整代码和链接。然后添加 css 以根据屏幕大小显示和隐藏项目。

请看CP链接https://codepen.io/aaha/pen/poyqRxo?editors=1010

<template>
  <v-app app>
    <v-app-bar app>
       <v-app-bar-nav-icon @click="drawer = true" 
                           class="d-flex d-sm-none" //Add this class to show menu icon only on small screen
                           ></v-app-bar-nav-icon>
        <v-toolbar-title>Your Dashboard</v-toolbar-title>
        <v-spacer></v-spacer>
  
        <v-btn icon>
          <v-icon>mdi-magnify</v-icon>
        </v-btn>
  
        <v-btn icon>
          <v-icon>mdi-dots-vertical</v-icon>
        </v-btn>
  
        <template v-slot:extension>
          <v-tabs
            v-model="tab"
            align-with-title
            class="d-none d-sm-flex" //Add this class to show tabs only on medium screen and above
          >
            <v-tabs-slider color="yellow"></v-tabs-slider>
  
            <v-tab
              v-for="item in items"
              :key="item"
            >
               item 
            </v-tab>
          </v-tabs>
        </template>
    </v-app-bar>
    <!-- Add a navigation bar -->
    <v-navigation-drawer
      v-model="drawer"
      absolute
      temporary
    >
      <v-list
        nav
        dense
      >
        <v-list-item-group
        >
          <v-list-item v-for="(item, index) in items">
            <v-list-item-title @click="tab = index"> item </v-list-item-title>
          </v-list-item>

        </v-list-item-group>
      </v-list>
    </v-navigation-drawer>
    <!-- Navigation bar ends -->
    <v-content class="ma-5">
       <v-tabs-items v-model="tab" class="d-flex flex-column align-center">
        <v-tab-item
          v-for="item in items"
          :key="item"
        >
          You are on  item 
        </v-tab-item>
      </v-tabs-items>
    </v-content>
  </v-app>
</template>
<script>
export default 
  el: '#app',
  data () 
    return 
      drawer: false,
      tab: null,
      items: [
        'web', 'shopping', 'videos', 'images', 'news',
      ],
    
  

</script>

【讨论】:

如果可行,请接受答案。这就是 *** 的工作原理。

以上是关于如何使用 vuetify 制作移动响应式导航栏的主要内容,如果未能解决你的问题,请参考以下文章

响应式导航栏一旦打开就会阻止正文内容

响应式导航栏隐藏其下方的元素

导航栏切换器仅在纵向,而不是横向移动

在 Bootstrap 中禁用响应式(移动)导航栏

@media 查询未在我的响应式导航栏设计中运行?

需要帮助将图像添加到响应式布局