解决微信小程序自定义navigationBar高度问题

2,530 阅读1分钟

在自定义小程序的navigationBar时,经常会遇到不同手机需要的navigationBar高度不一致的问题,不能写死。要动态获取高度。wx提供了safearea的方法,但不是很好用,在低版本苹果机的表现很不好。所以这里我还是推荐使用getSystemInfoSync以及getMenuButtonBoundingClientRect方法,获取手机顶部状态栏高度,以及小程序右上角的菜单按钮位置信息,综合计算得到

计算方法:

image.png

navigationBar的高度 = 蓝色框高度 * 2 + 菜单按钮高度

推荐在小程序onLaunch函数内执行,即首次初始化的时候执行,避免重复执行,代码如下:

image.png

tips: 写样式的时候,注意小程序的盒模型是content-box,即高度不包括padding html样式如下:

image.png