小程序底部tabbar加数字标

小程序底部tabbar悬浮数字标功能

实现效果如下:
在这里插入图片描述
大家都知道小程序的底部,是通过APP,JSON进行配置的,如果想要在下面的tabbar上面做手脚的话,网上搜索是找不到方法的,好多小白见到这种需求都感觉无从下手,如果你也遇到这种问题,那就好好研究一下API吧,话不多说,上代码:

//这里我们只介绍我们用到的方法

wx.setTabBarBadge({//这个方法的意思是,为小程序某一项的tabbar右上角添加文本
  index: 0,   //代表哪个tabbar(从0开始)
  text: '1'		//显示的内容
})


    wx.removeTabBarBadge({//这个方法为移除当前tabbar右上角的文本
            index: 2,		 //代表哪个tabbar(从0开始)
         })

下面来看我的实现逻辑

首先,因为我的tabbar底部的是需要填充数量,然而添加购物车的按钮很多,所以为了时时监听,我在APP.js里面做了如下操作:

//首先定义了一个方法
 	timer: false,
   scanCart: function (that) {
   //我把购物车里面的数据都塞到了缓存里,取名cart,任何一项修改购物车的行为,都会先取购物车的缓存,在重新更新缓存里的购物车参数
   //购物车
      var cart = wx.getStorageSync("cart");
      //统计购物车商品的总数量
      var cartnumber = 0; //购物车菜品的一共的数量
      
      for (var index in cart) {
         cartnumber += cart[index].num
      }
      
      if (cart.length) {   //判断购物车的数量个数,购物车如果为空就走else
         wx.setTabBarBadge({ //购物车不为空 ,给购物车的tabar右上角添加购物车数量标志
            index: 2,						//标志添加位置
            text: "" + cartnumber + ""				//通过编译,将购物车总数量放到这里
         })
      } else {//购物车为空
         wx.removeTabBarBadge({    //移除指定位置的tabbar右上角的标志
            index: 2,
         })
      }
   },

你以为这么就完了?这只能做基础的更改,因为每次加入购物车,数据都要刷新,但是,页面不刷新我们该怎么做,逻辑如下,
在APP.JS的生命周期函数onLaunch里面,写一个计时器,每过(100毫秒)就重新取购物车的缓存,计算数量重新塞到tabbar的标志里,这个方法每过100毫秒执行一次,所以购物车的缓存只要在任何地方做了更改,下面的标志就会紧跟着随着改变。
代码如下:

 onLaunch: function (options) {
      var that = this;
      //初始化购物车
      that.timer = setInterval(function () {
         that.scanCart(that)
      }, 100);
      that.scanCart(that);

   },

小结:这里面一定要注意,其他任何地方对购物车做了修改,一定要同时更改一下购物车的缓存数据,防止数据乱掉。有任何问题欢迎一起学习研究,微信:w827306356

  • 8
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画不完的饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值