如何自定义小程序tabbar组件实现底部tab切换功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计926个文字,预计阅读时间需要4分钟。
本篇文章向读者介绍如何在小程序页面中自定义tabbar组件,实现底部tab切换的功能。近期需求,设计一个如图所示的底部导航栏,采用官方提供的自定义tabbar组件,添加底部导航。
具体实现步骤如下:
1. 引入官方自定义tabbar组件。
2.在页面json配置文件中定义tabbar的样式和配置。
3.在页面wxml文件中添加tabbar组件。
4.在js文件中编写逻辑,实现tab切换功能。
示例代码如下:
json
{ tabBar: { color: #7A7E83, selectedColor: #3cc51f, backgroundColor: #ffffff, list: [ { pagePath: pages/home/home, text: 首页, iconPath: image/home.png, selectedIconPath: image/home_active.png }, { pagePath: pages/category/category, text: 分类, iconPath: image/category.png, selectedIconPath: image/category_active.png }, { pagePath: pages/cart/cart, text: 购物车, iconPath: image/cart.png, selectedIconPath: image/cart_active.png }, { pagePath: pages/mine/mine, text: 我的, iconPath: image/mine.png, selectedIconPath: image/mine_active.png } ] }}{{item.text}}
javascript// 在页面js文件中编写逻辑Page({ data: { tabBar: { list: [ // ...tabbar配置 ] } }, changeTab: function(e) { const { path, index }=e.currentTarget.dataset; wx.switchTab({ url: path }); // 可选:更新tabbar选中状态 this.setData({ 'tabBar.list[index].selected': true }); }});
以上代码实现了一个自定义底部tab切换功能,可根据实际需求进行调整。
本篇文章给大家介绍一下在小程序页面中自定义tabbar组件,实现底部tab切换的方法。近日需求,设计稿如图
要实现一个特殊的底部导航栏,采用官方提供的自定义tabbar组件,添加底部tab页面,切换图片闪屏。
解决采用swiper轮播图+自定义组件
1.编写自定义组件jtab-bar
wxml文件
<view class="jtab-bar"> <view class="jtab-bar-item" wx:for="{{list}}" wx:key="index" data-index="{{index}}" bindtap="switchTab"> <image wx:if="{{item.type === 'image'}}" class="jcover-img-bigicon" src="{{selected === index ? item.iconSelect : item.icon}}"></image> <view class="jtab-text" wx:else style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view> </view> </view>
js文件
Component({ data: { selected: 0, color: "#999999", selectedColor: "#032F82", list: [ { type: 'text', text: "首页" }, { type: 'image', icon: '../../image/icon_map.png', iconSelect: '../../image/icon_map_select.png', text: '' }, { type: 'text', text: "我的" }] }, attached() { }, methods: { switchTab(e) { const data = e.currentTarget.dataset this.setData({selected: data.index}) this.triggerEvent("setTab", data.index) } } })
wxss文件
.jtab-bar { position: fixed; bottom: 0; left: 0; right: 0; height: 100rpx; background: white; display: flex; align-items: center; padding-bottom: env(safe-area-inset-bottom); box-shadow: 0px -2rpx 2rpx rgba(153, 153, 153, 0.1); } .jtab-bar-item { text-align: center; flex: 1; height: 100rpx; } .jtab-bar-item .jtab-text { height: 100rpx; line-height: 100rpx; } .jcover-img-bigicon { position: fixed; bottom: 0rpx; width: 210rpx; height: 128rpx; padding-bottom: env(safe-area-inset-bottom); margin: 0 auto; right: 0; left: 0; }
使用的两张图片:
2.页面中使用
wxml文件
<view> <swiper class="jswipper-block" current="{{currentTab}}" duration="{{100}}"> <block wx:for="{{background}}" wx:key="*this"> <swiper-item catchtouchmove="swipperStop"> <view class="swiper-item {{item}}">{{item}}</view> </swiper-item> </block> </swiper> <jtabbar bindsetTab="setTabbar"/> </view>
这里使用catchtouchmove="swipperStop" swipperStop是个空函数来处理,禁止手动滑动
wxss文件
.jswipper-block { height: calc(100vh - 170rpx); background: #F7F8F9; }
js文件
/** * 页面的初始数据 */ data: { background: ['demo-text-1', 'demo-text-2', 'demo-text-3'], currentTab: 0 }, setTabbar({detail}) { this.setData({currentTab: detail}) }, // 轮播图 禁止手动滑动 catchtouchmove="swipperStop" swipperStop(){ },
暂完。
更多编程相关知识,请访问:编程视频!!
以上就是小程序如何自定义tabbar组件,实现底部tab切换的详细内容,更多请关注自由互联其它相关文章!
本文共计926个文字,预计阅读时间需要4分钟。
本篇文章向读者介绍如何在小程序页面中自定义tabbar组件,实现底部tab切换的功能。近期需求,设计一个如图所示的底部导航栏,采用官方提供的自定义tabbar组件,添加底部导航。
具体实现步骤如下:
1. 引入官方自定义tabbar组件。
2.在页面json配置文件中定义tabbar的样式和配置。
3.在页面wxml文件中添加tabbar组件。
4.在js文件中编写逻辑,实现tab切换功能。
示例代码如下:
json
{ tabBar: { color: #7A7E83, selectedColor: #3cc51f, backgroundColor: #ffffff, list: [ { pagePath: pages/home/home, text: 首页, iconPath: image/home.png, selectedIconPath: image/home_active.png }, { pagePath: pages/category/category, text: 分类, iconPath: image/category.png, selectedIconPath: image/category_active.png }, { pagePath: pages/cart/cart, text: 购物车, iconPath: image/cart.png, selectedIconPath: image/cart_active.png }, { pagePath: pages/mine/mine, text: 我的, iconPath: image/mine.png, selectedIconPath: image/mine_active.png } ] }}{{item.text}}
javascript// 在页面js文件中编写逻辑Page({ data: { tabBar: { list: [ // ...tabbar配置 ] } }, changeTab: function(e) { const { path, index }=e.currentTarget.dataset; wx.switchTab({ url: path }); // 可选:更新tabbar选中状态 this.setData({ 'tabBar.list[index].selected': true }); }});
以上代码实现了一个自定义底部tab切换功能,可根据实际需求进行调整。
本篇文章给大家介绍一下在小程序页面中自定义tabbar组件,实现底部tab切换的方法。近日需求,设计稿如图
要实现一个特殊的底部导航栏,采用官方提供的自定义tabbar组件,添加底部tab页面,切换图片闪屏。
解决采用swiper轮播图+自定义组件
1.编写自定义组件jtab-bar
wxml文件
<view class="jtab-bar"> <view class="jtab-bar-item" wx:for="{{list}}" wx:key="index" data-index="{{index}}" bindtap="switchTab"> <image wx:if="{{item.type === 'image'}}" class="jcover-img-bigicon" src="{{selected === index ? item.iconSelect : item.icon}}"></image> <view class="jtab-text" wx:else style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view> </view> </view>
js文件
Component({ data: { selected: 0, color: "#999999", selectedColor: "#032F82", list: [ { type: 'text', text: "首页" }, { type: 'image', icon: '../../image/icon_map.png', iconSelect: '../../image/icon_map_select.png', text: '' }, { type: 'text', text: "我的" }] }, attached() { }, methods: { switchTab(e) { const data = e.currentTarget.dataset this.setData({selected: data.index}) this.triggerEvent("setTab", data.index) } } })
wxss文件
.jtab-bar { position: fixed; bottom: 0; left: 0; right: 0; height: 100rpx; background: white; display: flex; align-items: center; padding-bottom: env(safe-area-inset-bottom); box-shadow: 0px -2rpx 2rpx rgba(153, 153, 153, 0.1); } .jtab-bar-item { text-align: center; flex: 1; height: 100rpx; } .jtab-bar-item .jtab-text { height: 100rpx; line-height: 100rpx; } .jcover-img-bigicon { position: fixed; bottom: 0rpx; width: 210rpx; height: 128rpx; padding-bottom: env(safe-area-inset-bottom); margin: 0 auto; right: 0; left: 0; }
使用的两张图片:
2.页面中使用
wxml文件
<view> <swiper class="jswipper-block" current="{{currentTab}}" duration="{{100}}"> <block wx:for="{{background}}" wx:key="*this"> <swiper-item catchtouchmove="swipperStop"> <view class="swiper-item {{item}}">{{item}}</view> </swiper-item> </block> </swiper> <jtabbar bindsetTab="setTabbar"/> </view>
这里使用catchtouchmove="swipperStop" swipperStop是个空函数来处理,禁止手动滑动
wxss文件
.jswipper-block { height: calc(100vh - 170rpx); background: #F7F8F9; }
js文件
/** * 页面的初始数据 */ data: { background: ['demo-text-1', 'demo-text-2', 'demo-text-3'], currentTab: 0 }, setTabbar({detail}) { this.setData({currentTab: detail}) }, // 轮播图 禁止手动滑动 catchtouchmove="swipperStop" swipperStop(){ },
暂完。
更多编程相关知识,请访问:编程视频!!
以上就是小程序如何自定义tabbar组件,实现底部tab切换的详细内容,更多请关注自由互联其它相关文章!

