uniapp 首次打开时 windowHeight 高度为什么没有减去tabbar高哦都
时间: 2023-10-25 21:09:08 浏览: 224
在 uniapp 中,可以通过 `uni.getSystemInfoSync()` 方法获取屏幕信息,包括屏幕高度和底部安全区域高度。在处理底部 tabbar 的高度时,需要注意以下几点:
1. `uni.getSystemInfoSync()` 方法获取到的屏幕高度不包括底部 tabbar 的高度,因此需要手动计算。
2. 底部安全区域高度可能是 0,因此需要特殊处理。如果底部安全区域高度为 0,则可以认为底部 tabbar 的高度为 `uni.upx2px(50)`。
3. 底部 tabbar 的高度可能因为样式或者其他因素发生改变,因此最好使用动态计算的方式获取底部 tabbar 的高度。
下面是一个示例代码,用于计算 uniapp 中底部 tabbar 的高度:
```javascript
// 获取屏幕信息
const systemInfo = uni.getSystemInfoSync()
// 计算底部 tabbar 的高度
const tabBarHeight = (() => {
const tabBar = uni.createSelectorQuery().select('.uni-tabbar')
if (tabBar) {
tabBar.boundingClientRect((rect) => {
return rect ? rect.height : uni.upx2px(50)
}).exec()
} else {
return uni.upx2px(50)
}
})()
// 计算窗口高度
const windowHeight = systemInfo.windowHeight - tabBarHeight
```
其中,`.uni-tabbar` 是底部 tabbar 的 class 名称,可以根据实际情况替换。
阅读全文