小程序自定义导航栏高度计算

自定义导航栏

在 app.json 里面把 “navigationStyle” 设置为 “custom”

页面json中 “navigationStyle”: “custom”

自定义导航栏后页面就成了全屏状态,如果还要自定义导航栏,那么就需要重新计算导航栏的高度,让其一直 fixed 在头部。其计算如下:

 // 获取状态栏高度
 const { statusBarHeight } = wx.getSystemInfoSync();
 
 // 得到右上角菜单的位置尺寸
const menuButtonObject = wx.getMenuButtonBoundingClientRect();
const { top, height } = menuButtonObject;
 
// 计算导航栏的高度
// 此高度基于右上角菜单在导航栏位置垂直居中计算得到
const navBarHeight = height + (top - statusBarHeight) * 2;
 
// 计算状态栏与导航栏的总高度
const statusNavBarHeight = statusBarHeight + navBarHeight;

标签