当前位置: 首页 > news >正文

小程序自定义tabbar,中间凸起

微信小程序自带tabbar,但无法实现中间按钮凸起样式和功能,因此按照设计重新自定义一个tabbar

1、创建tabbar文件,与pages同级创建一个文件夹,custom-tab-bar,里面按照设计图将底部tabbar样式编写

<view class="tab-bar"><view class="tab-bar-border"></view><block wx:for="{{list}}" wx:key="index"><view wx:if="{{item.isSpecial}}" class="tab-bar-item" data-name="{{item.text}}" data-path="{{item.pagePath}}" data-click="{{ item.isSpecial || false }}" data-index="{{index}}" bindtap="switchTab"><view class="special-image"><image class="special-image-pic" mode="widthFix" src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image></view><view style="color: {{selected === index ? selectedColor : color}}" class="special-text tab-text">{{item.text}}</view></view><view wx:else class="tab-bar-item" data-name="{{item.text}}" data-path="{{item.pagePath}}" data-click="{{ item.isSpecial }}" data-index="{{index}}" bindtap="switchTab"><image class="item-image" mode="widthFix" src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></image><view class="tab-text" style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</view><view class="num" wx:if="{{item.text == '消息' && message_num != 0}}">{{message_num}}</view></view></block>
</view>

2、在app.js中添加点击事件

  /* 自定义底部按钮切换 */getCurrentTabbar(selected, that) {if (typeof that.getTabBar === 'function' &&that.getTabBar()) {if (wx.getStorageSync('openid')) {msg_unread().then(res => {that.getTabBar().setData({selected: selected,message_num: res.data.data})})} else {that.getTabBar().setData({selected: selected})}}},

3、在app.json中修改默认tabbar数据结构

  "tabBar": {"custom": true,"list": [{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/contact/index","text": "通讯录"},{"pagePath": "pages/release/index","text": "发布"},{"pagePath": "pages/news/index","text": "消息"},{"pagePath": "pages/personal/index","text": "我的"}]
},

4、在对应的页面中执行点击事件

  app.getCurrentTabbar(index,this);/* index:tabbar对应的index */

如需源码,请点击下载源码,或点击顶部下载按钮

http://www.lryc.cn/news/175168.html

相关文章:

  • 数据结构-顺序栈C++示例
  • 若依cloud -【 100 ~ 103 】
  • 可转债实战与案例分析——成功的和失败的可转债投资案例、教训与经验分享
  • @NotNull注解不生效,全局异常处理
  • 【办公自动化】使用Python一键往Word文档的表格中填写数据(文末送书)
  • OpenHarmony应用核心技术理念与需求机遇简析
  • 让Pegasus天马座开发板实现超声波测距
  • C++11 多线程学习
  • 数学公式测试
  • 机器学习——SVM(支持向量机)
  • 【李沐深度学习笔记】基础优化方法
  • tmux 配置vim风格按键,支持gbk编码
  • Python —— excel文件操作(超详细)
  • 什么是AI问答机器人?它的应用场景有哪些?
  • 静态文件
  • Centos7 自部署中间件开机启动,以及java应用开机启动方法
  • 密度估计公式
  • 2023 ICPC 网络赛 第一场(补题:F)
  • MySQL慢查询优化、日志收集定位排查、慢查询sql分析
  • HZOJ-266:表达式计算
  • JavaScript学习小结
  • MySQL学习笔记13
  • 怎么获取外网ip地址
  • 算法 只出现一次的两个数字-(哈希+异或)
  • 外卖霸王餐小程序、H5、公众号版外卖系统源码
  • amlogic 机顶盒关闭DLNA 后,手机还能搜到盒子
  • @Autowire、@Recourse用啥?
  • [linux] 过滤警告⚠️
  • Linux必备操作系统命令大全
  • 【rtp】VideoTimingExtension 扩展的解析和写入