Home  >  Article  >  Web Front-end  >  Detailed introduction to the method of customizing tabbar style in uniapp

Detailed introduction to the method of customizing tabbar style in uniapp

PHPz
PHPzOriginal
2023-04-25 10:47:164650browse

Uniapp is a cross-platform development framework that allows developers to quickly build applications for multiple platforms using vue syntax. Among them, the tabbar component that comes with uniapp can easily implement the function of the bottom navigation bar, but the default style may not meet our needs, so we need to customize the tabbar style. Below I will introduce in detail how uniapp customizes the tabbar style.

  1. Create a tabBar.vue component

Create a component named tabBar in the components directory of the uniapp project. This component serves as the basic component of tabbar and includes tabbar. The overall layout and switching effect.

The template code of the tabBar.vue component is as follows:

<template>
  <view>
    <view>
      <view>
        <img  alt="Detailed introduction to the method of customizing tabbar style in uniapp" >
      </view>
      <view>{{ item.text }}</view>
    </view>
  </view>
</template>
  1. Introduce the tabBar component into the homepage Home.vue

Introduce the tabbar component into the homepage, And bind the tabbar's list data to the home page. The list data of tabbar is an array, which contains each tab and its corresponding icon, text and other information.

The template code of Home.vue is as follows:

<template>
  <view>
    <view>
      <router-view></router-view>
    </view>
    <tabbar></tabbar>
  </view>
</template>

<script>
import tabBar from "@/components/tabBar"

export default {
  name: "Home",
  components: { tabBar },
  data() {
    return {
      activeIndex: 0,
      list: [
        {
          iconPath: "/static/tab_home.png",
          selectedIconPath: "/static/tab_home_active.png",
          text: "首页",
        },
        {
          iconPath: "/static/tab_message.png",
          selectedIconPath: "/static/tab_message_active.png",
          text: "消息",
        },
        {
          iconPath: "/static/tab_mine.png",
          selectedIconPath: "/static/tab_mine_active.png",
          text: "我的",
        },
      ],
    };
  },
  methods: {
    onTabBarChange(index) {
      this.activeIndex = index;
    },
  },
};
</script>
  1. Custom tabbar style

Customized tabbar style needs to be done in App.vue, because The tabbar is shared by the entire application, so we need to define the style in App.vue. Here I will customize three style effects.

Style 1: Modify the size and position of the icon

<style>
.uni-tabbar-item-icon {
  position: relative;
  top: -3px; //图标向上偏移
  img {
    width: 24px; //图标宽度
    height: 24px; //图标高度
  }
}
</style>

Style 2: Modify the text size and color

<style>
.uni-tabbar-item-text {
  font-size: 12px; //文字大小
  color: #999; //文字颜色
}
.uni-tabbar-item-active .uni-tabbar-item-text {
  color: #007aff; //选中状态下文字颜色
}
</style>

Style 3: Add background color and shadow

<style>
.uni-tabbar {
  position: fixed;
  left: 0;
  bottom: 0;
  display: flex;
  width: 100%;
  height: 55px; //tabbar高度
  background-color: #fff; //背景色
  box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.1); //阴影
  z-index: 100;
}
</style>
  1. Final effect

Through the above steps of customizing the tabbar style, we successfully implemented the custom style setting for the tabbar component. The effect is as follows:

Detailed introduction to the method of customizing tabbar style in uniapp

Summary

Through vue syntax and the tabbar component provided by the uniapp framework, we can quickly implement the function of the bottom navigation bar. At the same time, by customizing the tabbar style, we can make the tabbar meet our needs and improve the user experience of the application.

The above is the detailed content of Detailed introduction to the method of customizing tabbar style in uniapp. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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