uniapp 常用高度状态栏,导航栏,tab栏,底部安全高度

实际效果

使用

javascript 复制代码
//使用
let posConfig = this.getPosConfig(); // 传false返回值为 px大小
console.log(posConfig.safeBottomH)
javascript 复制代码
        // 入参 是否转换为rpx
        getPosConfig(toRpx = true) {
				const systemInfo = uni.getSystemInfoSync();
				// #ifdef MP
				const menuButtonInfo = uni.getMenuButtonBoundingClientRect();
				// #endif
				const posConfig = {
					statusBarH: systemInfo.statusBarHeight,//状态栏高度
					tabBarH: systemInfo.screenHeight - systemInfo.windowHeight,//底部tab高度
					safeBottomH: systemInfo.safeAreaInsets.bottom,//底部安全高度
					// #ifdef MP
					capsuleH: menuButtonInfo.height, //胶囊高度
					capsuleW: menuButtonInfo.width, //胶囊宽度
					capsuleGap: menuButtonInfo.top - systemInfo.statusBarHeight, // 胶囊到状态栏的间隔
					customBarH: menuButtonInfo.height + (menuButtonInfo.top - systemInfo.statusBarHeight) * 2, //自定义导航栏高度
					customBarW: menuButtonInfo.left, // 自定义导航栏宽度
					// #endif
				}
				if (toRpx) {
					const ratio = 750 / systemInfo.windowWidth;
					for (let key in posConfig) {
						posConfig[key] *= ratio;
					}
				}
				return posConfig;
}
相关推荐
袋鱼不重4 分钟前
保姆级教程:让 Cursor 编辑器突破地区限制,正常调用大模型(附配置 + 截图)
前端·后端·cursor
bieao6 分钟前
Vite+Antd+Micro-app中iframe模式下样式闪烁的问题
前端
zhouzhouya9 分钟前
码上星辰,人间烟火:我的2025
前端·程序员·代码规范
江湖yi山人9 分钟前
生产环境的log,上传到开发者的本地服务器
javascript·python
彭涛36117 分钟前
什么是MessageChannel
前端
嘉琪00126 分钟前
provide 和 inject的理解?
前端·javascript·vue.js
匆叔27 分钟前
ESLint,前端项目CTRL+S,自动保存格式化文档,超细
前端
满天星辰28 分钟前
Vue3响应式API-reactive的原理
前端·vue.js
XiaoYu200229 分钟前
第10章 SSE魔改
前端·webassembly
沙子迷了蜗牛眼31 分钟前
当展示列表使用 URL.createObjectURL 的创建临时图片、视频无法加载问题
java·前端·javascript·vue.js