uniapp 计算状态栏和导航栏高度

uni.getSystemInfo({
 success:function(e){
  this.$options.globalData.statusBar = e.statusBarHeight
  // #ifndef MP
  if(e.platform == 'android') {
    this.$options.globalData.customBar = e.statusBarHeight + 50
  }else {
    this.$options.globalData.customBar = e.statusBarHeight + 45
  }
  // #endif

  // #ifdef MP-WEIXIN

  //获取胶囊按钮的布局位置信息,坐标信息以屏幕左上角为原点
  let custom = wx.getMenuButtonBoundingClientRect()   

  //导航栏高度 = 状态栏到胶囊的间距(胶囊距上距离-状态栏高度) * 2 + 胶囊高度 + 状态栏高度。

  this.$options.globalData.customBar = custom.bottom + custom.top - e.statusBarHeight
  // #endif

  // #ifdef MP-ALIPAY
  this.$options.globalData.customBar = e.statusBarHeight + e.titleBarHeight
  // #endif
 }
})

原文地址:https://www.cnblogs.com/xuwenqin/p/14043012.html