小程序自定义tabBar

1.app.json文件“tabBar”里面“custom”设置为true。

小程序自定义tabBar_第1张图片

 

 

 2.新建custom-tab-bar文件夹在该文件下面新建index页面。(注意:custom-tab-bar必须与pages同级且命名必须这样写)

小程序自定义tabBar_第2张图片

 

3.根据项目需求在custom-tab-bar下index页面写自己的自定义tabBer。

// custom-tab-bar/index.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    selected: 0,
    color: "#999999",
    selectedColor: "#008adf",
    foot: [
      {
        "url": "/pages/xc/student/student",
        "iconPath": "/Comment/img/Order1.png",
        "selectedIconPath": "/Comment/img/Order2.png",
        "text": "名单"
      },
      {
        "url": "/pages/xc/index/index",
        "iconPath": "/Comment/img/kaoqin1_60px.png",
        "selectedIconPath": "/Comment/img/kaoqin2_60px.png",
        "text": "考勤"
      },
      {
        "url": "/pages/xc/student/Goaddstudent",
        "iconPath": "/Comment/img/anniu3_120px.png",
        "selectedIconPath": "/Comment/img/anniu3_120px.png",
        "text": "录入"
      },
      {
        "url": "/pages/xc/student/studentInfo",
        "iconPath": "/Comment/img/news1_60px.png",
        "selectedIconPath": "/Comment/img/news_60px.png",
        "text": "消息"
      },
      {
        "url": "/pages/xc/student/userLeading",
        "iconPath": "/Comment/img/My1_60px.png",
        "selectedIconPath": "/Comment/img/My_60px.png",
        "text": "我的"
      },
    ],
  },

  /**
   * 组件的方法列表
   */
  methods: {
    switchTab(e) {
      const data = e.currentTarget.dataset
      const url = data.path
      wx.switchTab({ url })
      this.setData({
        selected: data.index,
      })
    }
  }
})



  for="{{foot}}" data-path="{{item.url}}"  bindtap="switchTab" open-type="reLaunch" data-index="{{index}}" class="tab-bar-item">
    
      
    
    {{item.text}}
  


/* custom-tab-bar/index.wxss */
.foot-nav {
  width:100%;
  height:110rpx;
  position: fixed;
  bottom: 0;
  z-index: 9999;
  border-top:2rpx solid #f4f4f4;
  box-sizing:border-box;
  color:#999;
  background:#fff;
  box-shadow:0px -5rpx 10rpx rgba(209, 209, 209, 0.3);
}
.foot-nav .tab-bar-item {
  position:relative;
  width:20%;
  height:110rpx;
  display: inline-block;
  text-align: center;
  bottom:40rpx;
}
.foot-nav .tab-bar-item .img-box {
  top: 10rpx;
  position: relative;
}
.foot-nav .tab-bar-item:nth-child(3) .img-box {
  top: 4rpx;
  position: relative;
}
.foot-nav .tab-bar-item text{
  font-size: 28rpx;
}
.foot-nav .tab-bar-item image {
  display: block;
  width:60rpx;
  height:60rpx;
  margin:0 auto;
}
.foot-nav navigator:nth-child(3){
  position: relative;
  top:-40rpx;
}
.foot-nav .tab-bar-item:nth-child(3) image{
  width:100rpx;
  height:100rpx;
  box-shadow:0px -5rpx 10rpx rgba(150, 150, 150, 0.5);
  border-radius:50%;
}

小程序自定义tabBar_第3张图片

 

 4.通过自定义组件提供的getTabBar 方法,可获取当前页面下的自定义 tabBar 组件实例,实现底部tabBar切换效果。

// pages/xc/student/student.js
const app = getApp()
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 0 
        })
      }
     wx.hideHomeButton();
    }   
  },
})

// pages/xc/index/index.js
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 1
        })
      }
      wx.hideHomeButton();
    }
  },
})

// pages/xc/student/Goaddstudent.js
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 2
        })
      }
      wx.hideHomeButton();
    }
  },
})

// pages/xc/student/studentInfo
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 3
        })
      }
      wx.hideHomeButton();
    }
  },
})

// pages/xc/student/userLeading
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 4
        })
      }
      wx.hideHomeButton();
    }
  },
})
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 3
        })
      }
      wx.hideHomeButton();
    }
  },
})
var app = getApp();
Component({
  pageLifetimes: {
    show() {
      if (typeof this.getTabBar === 'function' &&
        this.getTabBar()) {
        this.getTabBar().setData({
          selected: 3
        })
      }
      wx.hideHomeButton();
    }
  },
})       

 

你可能感兴趣的:(小程序自定义tabBar)