小程序自定义tabbr

自定义tabar说明

在这里插入图片描述
比如我们想定义这样的tabbar原生就无法为我们满足,

原生tabbar配置

微信小程序有对应的tabbar定制只需要在app.json文件配置即可。

  "tabBar": {
    "custom": true,
    "color": "#7A7E83",
    "selectedColor": "#3cc51f",
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "list": [
      {
        "pagePath": "pages/user/user",
        "iconPath": "./assimg/hd.png",
        "selectedIconPath": "./assimg/hds.png",
        "text": "活动"
      },
      {
        "pagePath": "pages/index/index",
        "iconPath": "./assimg/dh.png",
        "selectedIconPath": "./assimg/hds.png",
        "text": "导航"
      },
      {
        "pagePath": "pages/navigator/navigator",
        "iconPath": "./assimg/md.png",
        "selectedIconPath": "./assimg/hds.png",
        "text": "我的"
      }
    ]
  },

自定义tabar

1.新建custom-tab-bar文件夹
*必须先在json设置"custom": true,才能自定义我们的tabbar

//我们编辑js代码
Component({
  data: {
    selected: 0,
    color: "#7A7E83",
    selectedColor: "#3cc51f",
    "list": [{
        "pagePath": "/pages/index/index",
        "iconPath": "../assimg/hd.png",
        "selectedIconPath": "../assimg/hds.png",
        "text": "活动"
      },
      {
        "pagePath": "/pages/navigator/navigator",
        "iconPath": "../assimg/dh.png",
        "selectedIconPath": "../assimg/dhs.png",
        "text": "导航",
        "diyClass": "diy"
      },
      {
        "pagePath": "/pages/user/user",
        "iconPath": "../assimg/md.png",
        "selectedIconPath": "../assimg/mds.png",
        "text": "我的"
      }
    ]
  },
  attached() {},
  onShow: function () {
    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      this.getTabBar().setData({
        selected: 0
      })
    }
  },
  methods: {
    switchTab(e) {
      const data = e.currentTarget.dataset
      const url = data.path
      this.setData({
        selected: data.index
      })
      wx.switchTab({
        url
      })
    }
  },

})
//wxhtml页面代码
<!--miniprogram/custom-tab-bar/index.wxml-->
<cover-view class="tab-bar">
  <!-- <cover-view class="tab-bar-border"></cover-view> -->
  <cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item {{item.diyClass}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab">
    <cover-image src="{{selected === index ? item.selectedIconPath : item.iconPath}}" class="{{item.diyClass}}"></cover-image>
    <cover-view style="color: {{selected === index ? selectedColor : color}}" class="{{item.diyClass}}">{{item.text}}</cover-view>
  </cover-view>
</cover-view>

由于自定义的tabbar效果很强但是也带来了很多问题比如切换空白等等,亲们在自定义的时候如果不是真的需求需要尽量使用原生定义的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值