Home Web Front-end uni-app How to implement the hidden function of bottom navigation in uniapp

How to implement the hidden function of bottom navigation in uniapp

Apr 18, 2023 pm 02:10 PM

When using uniapp to develop mobile applications, the existence of the bottom navigation bar can help users quickly switch pages and functions, improving user experience and operational efficiency. However, in some special cases, we may need to hide the bottom navigation bar. This article will introduce how to hide the bottom navigation in uniapp.

1. Basic use of the bottom navigation bar

The bottom navigation bar of uniapp is configured in the pages.json file, where we can set the style, icon and jump of the bottom menu bar Information about the page to be redirected. The following is a simple sample code:

{
  "pages":[
    {
      "path":"pages/index/index",
      "name":"index",
      "style":{
        "navigationBarTitleText":"首页"
      }
    },
    {
      "path":"pages/user/user",
      "name":"user",
      "style":{
        "navigationBarTitleText":"个人中心"
      }
    }
  ],
  "tabBar":{
    "color":"#666",
    "selectedColor":"#4285f4",
    "backgroundColor":"#ffffff",
    "list":[
      {
        "pagePath":"pages/index/index",
        "text":"首页",
        "iconPath":"static/img/tabbar/home.png",
        "selectedIconPath":"static/img/tabbar/home-selected.png"
      },
      {
        "pagePath":"pages/user/user",
        "text":"我的",
        "iconPath":"static/img/tabbar/user.png",
        "selectedIconPath":"static/img/tabbar/user-selected.png"
      }
    ]
  },
  "globalStyle":{
    "navigationBarBackgroundColor":"#fff",
    "navigationBarTextStyle":"black"
  }
}
Copy after login

In the above code, the "pages" array is used to configure all page information, and the "tabBar" object is used to configure the style and jump information of the bottom menu bar. Among them, each object in the "list" array represents a bottom menu item, including "pagePath" (jump page path), "text" (menu item text), "iconPath" (icon path when not selected) and "selectedIconPath" ” (icon path when selected) and other attributes.

2. Methods of hiding the bottom navigation bar

In some scenarios, we may need to hide the bottom navigation bar in order to achieve special interactive effects or full-screen display and other functions. In uniapp, there are several ways to hide the bottom navigation bar:

  1. Use the meta information of vue-router

You can set the page through the meta information of vue-router Some special properties, such as whether to hide the bottom navigation bar. When configuring vue-router in pages.json, you can add the meta field, add the required information in meta, and use this.$route.meta.xxx to obtain it in the page component.

{
  "pages": [
    {
      "path": "pages/index/index",
      "name": "index",
      "meta": {
        "showTabbar": true
      }
    },
    {
      "path": "pages/user/user",
      "name": "user",
      "meta": {
        "showTabbar": false
      }
    }
  ],
  "tabBar": {...}
}
Copy after login

In the above code, add the "meta" field in pages.json to set whether the page needs to display the bottom navigation bar, which can be obtained through this.$route.meta.showTabbar in the component.

In pages where the bottom navigation bar is hidden, we need to manually set the style at the bottom of the page. For example, set a div with a height equal to the height of the bottom navigation bar to replace the navigation bar to ensure that the page is displayed normally.

<template>
  <div>
    <div class="content">
      ...
    </div>
    <div class="placeholder"></div>
  </div>
</template>

<style>
  .placeholder {
    height: 100rpx;
  }
</style>
Copy after login
Copy after login

In the above code, we added a div with a height of 100rpx at the bottom to replace the position of the bottom navigation bar.

  1. Use global variables in app.vue to control whether the bottom navigation bar is displayed

In the uniapp main entry file app.vue, we can define a global variable to Controls whether the bottom navigation bar is displayed. The specific operation method is as follows:

<template>
  <div class="app">
    <uni-tab-bar v-if="showTabBar" />
    <router-view />
  </div>
</template>

<script>
export default {
  data() {
    return {
      showTabBar: true
    }
  },
  mounted() {
    const pages = getCurrentPages()
    const currentPage = pages[pages.length - 1]
    this.showTabBar = currentPage.route.indexOf('/home') !== -1 // 在这里根据当前页面路由来设置showTabBar的值
  }
}
</script>
Copy after login

In the above code, we determine whether the bottom navigation bar needs to be displayed by getting the current page route. If it needs to be displayed, set the showTabBar variable to true, otherwise set it to false. In the app.vue component, we use the v-if directive to decide whether to display the bottom navigation bar based on the value of showTabBar.

In the page where the bottom navigation bar is hidden, we also need to add a div with a height equal to the height of the bottom navigation bar to ensure that the page is displayed normally.

<template>
  <div>
    <div class="content">
      ...
    </div>
    <div class="placeholder"></div>
  </div>
</template>

<style>
  .placeholder {
    height: 100rpx;
  }
</style>
Copy after login
Copy after login
  1. Use dynamic binding in the uni-tab-bar component to control whether the bottom navigation bar is displayed

uni-tab-bar is the default tab provided by uniapp Bar component where we can use dynamic binding to control the showing and hiding of the bottom navigation bar. The specific operation method is as follows:

<template>
  <div class="tab-bar" :class="{&#39;hidden&#39;:hidden}">
    <div class="item" v-for="(tab,index) in tabList" :key="index" @click="switchTab(index)">
      <div class="icon" :class="{&#39;active&#39;:tab.active}">
        <img :src="tab.active ? tab.selectedIconPath : tab.iconPath" />
      </div>
      <div class="text" :class="{&#39;active&#39;:tab.active}">{{tab.text}}</div>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    hidden: Boolean,
    tabList: Array,
    color: String,
    selectedColor: String,
    backgroundColor: String
  },
  methods: {
    switchTab(index) {
      this.$emit('switchTab', index)
    }
  }
}
</script>

<style>
  .hidden {
    display: none;
  }
</style>
Copy after login

In the above code, we define a hidden attribute to control the display and hiding of the bottom navigation bar. When introducing the uni-tab-bar component into the page component, we can control whether the bottom navigation bar is displayed by dynamically binding the hidden attribute.

In pages where the bottom navigation bar is hidden, we need to manually set the style at the bottom of the page, for example, add a div with a height equal to the height of the bottom navigation bar to replace the navigation bar.

<template>
  <div class="content">
    ...
  </div>
  <div class="placeholder"></div>
</template>

<style>
  .placeholder {
    height: 100rpx;
  }
</style>
Copy after login

The above are three methods to hide the bottom navigation bar in uniapp. When using it, you should choose the most appropriate method according to your own needs.

The above is the detailed content of How to implement the hidden function of bottom navigation in uniapp. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I use preprocessors (Sass, Less) with uni-app? How do I use preprocessors (Sass, Less) with uni-app? Mar 18, 2025 pm 12:20 PM

Article discusses using Sass and Less preprocessors in uni-app, detailing setup, benefits, and dual usage. Main focus is on configuration and advantages.[159 characters]

How do I use uni-app's animation API? How do I use uni-app's animation API? Mar 18, 2025 pm 12:21 PM

The article explains how to use uni-app's animation API, detailing steps to create and apply animations, key functions, and methods to combine and control animation timing.Character count: 159

What are the different types of testing that you can perform in a UniApp application? What are the different types of testing that you can perform in a UniApp application? Mar 27, 2025 pm 04:59 PM

The article discusses various testing types for UniApp applications, including unit, integration, functional, UI/UX, performance, cross-platform, and security testing. It also covers ensuring cross-platform compatibility and recommends tools like Jes

How can you reduce the size of your UniApp application package? How can you reduce the size of your UniApp application package? Mar 27, 2025 pm 04:45 PM

The article discusses strategies to reduce UniApp package size, focusing on code optimization, resource management, and techniques like code splitting and lazy loading.

What debugging tools are available for UniApp development? What debugging tools are available for UniApp development? Mar 27, 2025 pm 05:05 PM

The article discusses debugging tools and best practices for UniApp development, focusing on tools like HBuilderX, WeChat Developer Tools, and Chrome DevTools.

How do I use uni-app's API for accessing device features (camera, geolocation, etc.)? How do I use uni-app's API for accessing device features (camera, geolocation, etc.)? Mar 18, 2025 pm 12:06 PM

The article discusses using uni-app's APIs to access device features like camera and geolocation, including permission settings and error handling.Character count: 158

How do I use uni-app's storage API (uni.setStorage, uni.getStorage)? How do I use uni-app's storage API (uni.setStorage, uni.getStorage)? Mar 18, 2025 pm 12:22 PM

The article explains how to use uni-app's storage APIs (uni.setStorage, uni.getStorage) for local data management, discusses best practices, troubleshooting, and highlights limitations and considerations for effective use.

How do I validate user input in uni-app? How do I validate user input in uni-app? Mar 18, 2025 pm 12:17 PM

The article discusses validating user input in uni-app using JavaScript and data binding, emphasizing both client and server-side validation for data integrity. Plugins like uni-validate are recommended for form validation.

See all articles