• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 微信小程序自定义tabbar组件

微信小程序自定义tabbar组件

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了微信小程序,自定义tabbar组件等相关知识,希望对您有所帮助

这篇文章主要为大家详细介绍了微信小程序自定义tabbar组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序自定义tabbar组件的具体代码,供大家参考,具体内容如下


由于项目需求,必须自己写组件:

第一步:在App.json中配置tabBar,自定也组件也必须配置,"custom": true,list里配置所有的tabbar页面。

"tabBar": {    "custom": true,    "color": "red",    "selectedColor": "#3b81d7",    "backgroundColor": "#000000",    "list": [{        "pagePath": "pages/Role/InsureIndex/index",        "text": "首页"    }, {        "pagePath": "pages/Role/MineIndex/index",        "text": "首页"    }, {        "pagePath": "pages/index/userInfo/userInfo",        "text": "我的"    }]},

第二步:在pages的同级目录新建组件,文件夹名字:custom-tab-bar,自定义组件文件名为index。组件代码如下,应该都能看懂。

index.js

Component({    properties: {},     data: {        indexImg: "../static/images/tabBar/tab_icon_home_nor@2x.png",        indexSelectImg: "../static/images/tabBar/tab_icon_home_sel@2x.png",        aboutUsImg: "../static/images/tabBar/tab_icon_user_nor@2x.png",        aboutUsSelectImg: "../static/images/tabBar/tab_icon_user_sel@2x.png",        _tabbat: null,        iPhoneX: false,        urls: ['/pages/Role/InsureIndex/index',            '/pages/index/userInfo/userInfo'        ]    },    attached() {        var self = this        //此为业务代码,可不看        wx.getStorage({            key: 'userInfo',            success: function (res) {                const {                    userRoleCode                } = res.data                if (userRoleCode == '50' || userRoleCode == '70') {                    self.setData({                        ["urls[0]"]: '/pages/Role/MineIndex/index'                    })                } else if (userRoleCode == '30' || userRoleCode == '35' || userRoleCode == '40') {                    self.setData({                        ["urls[0]"]: '/pages/Role/InsureIndex/index'                    })                }            }        })        wx.getSystemInfo({            success(res) {                console.log(res.model)                if (res.model.indexOf('iPhone X') >= 0) {                    self.setData({                        iPhoneX: true                    })                }            }        })    },    /**     * 组件的方法列表     */    methods: {        switchTap: function (e) {            var self = this            var index = e.currentTarget.dataset.index;            var urls = self.data.urls            wx.switchTab({                url: urls[index],            })        }    }})

index.wxml

<div class="_tabbar {{iPhoneX?'_iPhoneX':''}}">    <div class="titem {{_tabbat==0?'tCdk':''}}" data-index="0" bind:tap="switchTap">        <image src="{{_tabbat==0?indexSelectImg:indexImg}}" />        <b>首页</b>    </div>    <div class="titem {{_tabbat==1?'tCdk':''}}" data-index="1" bind:tap="switchTap">        <image src="{{_tabbat==1?aboutUsSelectImg:aboutUsImg}}" />        <b>我的</b>    </div></div>

index.wxss

._tabbar {    width: 100%;    height: 120rpx;    display: flex;    align-items: center;    background: #fff;    font-size: 26rpx;    color: #999999;    box-shadow: 0px -7rpx 13rpx 0px rgba(193, 185, 204, 0.13);} ._tabbar .titem {    text-align: center;    width: 50%;} ._tabbar .titem image {    display: block;    margin: auto;    width: 48rpx;    height: 48rpx;    margin-bottom: 10rpx;} ._tabbar .tCdk {    color: #37ADFE;} ._iPhoneX {    height: 148rpx;}

index.json

{    "component": true,    "usingComponents": {}}

以上为组件代码,点击tabbar跳转页面时,会重新加载tabbar组件,导致选中样式一直是默认的,因此需要在用到tabbar的页面的js文件中做如下操作:(以 “首页” 页面为例)

onShow: function () {    this.getTabBar().setData({        _tabbat: 0    })},

以上就已经完成了,但是看网上大家说会出现两个tabBar,我这边是没出现(一个自定义,一个自带的),如果出现的话,在app.js中的onLaunch函数中加入 wx.hideTabBar() , 隐藏自带的tabbar就可以了。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 手把手教你在微信小程序中使用canvas绘制天气折线图(附代码)
  • 微信小程序页面向下滚动时tab栏固定页面顶部实例讲解
  • uniapp实现微信小程序全局分享的示例代码
  • 浅析微信小程序中自定义组件的方法
  • 微信小程序发布新版本时自动提示用户更新的方法
  • 微信小程序wx.request使用POST请求时后端无法获取数据解决办法
  • 微信小程序如何获取到openid和session_key
  • PHP微信小程序解包过程实例详解
  • 微信小程序中的button按钮宽度设置无效怎么办
  • 微信小程序反编译提取源代码方法

相关文章

  • 2022-04-29DedeCMS织梦模板使likearticle标签支持排序orderby的方法
  • 2022-04-29dedecms调用Discuz!X2.5最新帖子和图片的方法
  • 2022-04-29Phpcms V9内容编辑器支持JavaScript的设置方法
  • 2022-04-29利用yii 2框架发送电子邮件
  • 2022-04-29vue路由学习之区分$route和$router,看看它们的区别
  • 2022-04-29PHP怎么设置上传图片大小
  • 2022-04-29Photoshop制作彩色纹理的塑料艺术字教程
  • 2022-04-29PHP怎么进行登入操作和注销登录(实例演示)
  • 2022-04-29Photoshop简单的绘制逼真的小汽车教程
  • 2022-04-29介绍PHP + MySQL 实现数据分页显示

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 微信小程序获取设备信息api示例
    • 使用CorelDRAW绘制椭圆和圆形
    • 浅析安卓app和微信授权登录及分享完整对接(代码分享)
    • 四个vue后台常用模板,你知道几个?
    • Photoshop制作透明大气的导航按钮
    • 详解PHP中__construct()构造方法
    • 深入浅析vue3+vite中怎么使用svg图标
    • PhotoShop绘制反光水晶玻璃球按钮教程
    • 4种移动端适配方法
    • 如何优化css expression性能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有