沃梦达 / IT编程 / 前端开发 / 正文

微信小程序实现自定义底部导航

下面来看一下具体的实现步骤以及示例。

实现微信小程序自定义底部导航需要经过以下步骤:
1. 在app.json文件中定义底部导航栏
2. 创建对应的底部导航栏页面
3. 在底部导航栏页面中引用相应的子页面
4. 最后,在各自页面中添加导航栏的相应内容,如背景色、图标及文字等。

下面来看一下具体的实现步骤以及示例。

步骤一: 在app.json文件中定义底部导航栏

在app.json文件中定义tabBar这个属性,用来控制底部tabBar,包括底部菜单栏的图标、文字、颜色等等。
示例代码如下:

{
  "tabBar": {
    "color": "#888",
    "selectedColor": "#d81e06",
    "backgroundColor": "#fafafa",
    "borderStyle": "black",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "images/home.png",
      "selectedIconPath": "images/home-active.png"
    },{
      "pagePath": "pages/user/user",
      "text": "我的",
      "iconPath": "images/user.png",
      "selectedIconPath": "images/user-active.png"
    }]
  }
}

其中,“list”中每一项中分别对应的是各个底部导航栏的内容,对应属性分别解释如下:
- pagePath:导航栏对应的页面路径
- text:导航栏显示的文本,建议不要超过4个字
- iconPath:导航栏图标的路径
- selectedIconPath:用户选中导航栏时,对应的图标的路径

步骤二: 创建对应的底部导航栏页面

对应每一项页面的路径需要在app.json文件中进行配置,示例代码如下:

{
  "pages": [
    "pages/index/index",
    "pages/user/user",
    "pages/logs/logs"
  ],
  "tabBar": {
    "color": "#888",
    "selectedColor": "#d81e06",
    "backgroundColor": "#fafafa",
    "borderStyle": "black",
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页",
      "iconPath": "images/home.png",
      "selectedIconPath": "images/home-active.png"
    },{
      "pagePath": "pages/user/user",
      "text": "我的",
      "iconPath": "images/user.png",
      "selectedIconPath": "images/user-active.png"
    }]
  }
}

这里我们以底部导航栏里的“首页”和“我的”为例,在pages文件夹下创建两个文件夹,index和user。分别对应页面路径为"pages/index/index"和"pages/user/user",此时就可以在底部导航栏里用定义的路径进行切换了。

步骤三: 在底部导航栏页面中引用相应的子页面

在相应底部导航栏的页面(index和user)中使用标签,来引用各自的子页面。
示例代码如下:

<weapp-tabbar>
  <view wx:slot="home-tab">
    <!-- 首页页面内容 -->
    <view>{{ homeTitle }}</view>
  </view>
  <view wx:slot="user-tab">
    <!-- 我的页面内容 -->
    <view>{{ userTitle }}</view>
  </view>
</weapp-tabbar>

在这里,我们使用了一个自定义组件来实现底部导航栏。使用(xxx表示在tabbar中定义的pagePath对应的属性值)标签包含子页面的内容。这里我们可以传递一些数据给子页面,如homeTitle和userTitle。在子页面中即可调用。

步骤四: 在各自页面中添加导航栏的相应内容

在各自页面中添加导航栏的相应内容,如背景色、图标及文字等。
示例代码如下:

.weui-tabbar {
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #fff;
  padding: 10rpx 0;
  border-top: 1rpx solid #eee;
}

.weui-tabbar__item {
  display: inline-block;
  text-align: center;
  padding: 10rpx 0 6rpx;
  font-size: 26rpx;
  line-height: 1;
  vertical-align: top;
  width: 50%;
}

.weui-tabbar__icon {
  display: inline-block;
  width: 30rpx;
  height: 30rpx;
  margin-bottom: 2rpx;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
}

.weui-tabbar__text {
  font-size: 22rpx;
  color: #888;
}

在样式表中定义了.weui-tabbar样式类,用来控制整个底部菜单栏的样式。在底部栏的每个item里定义相应的文字、图标等样式。

以上就是实现微信小程序自定义底部导航的完整攻略,希望能对你有所帮助。

本文标题为:微信小程序实现自定义底部导航