微信小程序——自定义导航栏

本文介绍如何取消原生导航头部并实现自定义导航栏。包括使用`navigationStyle`设置为`custom`取消默认头部,利用`wx.getMenuButtonBoundingClientRect()`获取胶囊按钮的位置信息,并结合`wx.getSystemInfo()`获取设备的具体参数,最终计算出自定义导航栏的高度、胶囊按钮与顶部的距离及与右侧的距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一定情况下,我们需要用到自定义的导航,在此记录

取消原生头部

 "navigationStyle": "custom"

在这里插入图片描述

获取胶囊的信息

wx.getMenuButtonBoundingClientRect()

getMeunInfo() {
    let Menuinfo = wx.getMenuButtonBoundingClientRect()
    // @ts-ignore
    console.log("Menuinfo", Menuinfo);

    // 获取设备信息
    wx.getSystemInfo({
      success: res => {
        // @ts-ignore
        console.log(res)
        //自定义导航栏的高度
        let height = res.statusBarHeight + Menuinfo.height + ((Menuinfo.top - res.statusBarHeight) * 2)

        // @ts-ignore
        this.navHeight = height
        // @ts-ignore
        this.statusBarHeight = res.statusBarHeight
        this.setData({
          statusBarHeight: res.statusBarHeight,
          marginTop: Menuinfo.top + (Menuinfo.height / 4)
        })
      }
    })
    /**
     * 通过这些信息我们可以计算出上面说的3个值:

1. 整个导航栏高度 = statausBarHeight + height + (top-statausBarHeight )*2;

2. 胶囊按钮与顶部的距离 = top;

3.胶囊按钮与右侧的距离 = windowWidth - right。
     */
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值