uniapp自定义首页导航栏 获取状态栏和胶囊高度

运行结果样式(首页导航栏根据手机状态栏高度展示位置不一样):

相关代码:

<template>
	<image class="main_bg" src="@/static/img/bg/home_list_bg.png"></image>
	<view :style="{marginTop:statusBarHeight,height:titleBarHeight,lineHeight:titleBarHeight}"
			class="c33 bold6 fs19 home_title">首页</view>
		<view class="px15 mt20">
</template>
data() {
		return {
			// 状态栏(顶部)高度
			statusBarHeight: 0,
			// 导航栏(胶囊)高度
			titleBarHeight: 0,
			// 总高度
			totalHeight: '',
		};
},
created() {
			// #ifndef H5 || APP-PLUS || MP-ALIPAY
			let menuButtonObject = uni.getMenuButtonBoundingClientRect(); //获取菜单按钮(右上角胶囊按钮)的布局位置信息。坐标信息以屏幕左上角为原点。
			uni.getSystemInfo({ //获取系统信息
				success: res => {
					//导航栏高度=菜单按钮高度+(菜单按钮与顶部距离-状态栏高度)*2
					let navHeight = menuButtonObject.height + (menuButtonObject.top - res.statusBarHeight) * 2;
					// 导航栏(胶囊)高度
					this.titleBarHeight = Number(parseInt(navHeight / (uni.upx2px(100) / 100))) + 'rpx';
					//  状态栏(顶部)高度
					this.statusBarHeight = Number(parseInt(res.statusBarHeight / (uni.upx2px(100) / 100))) +
						'rpx';
					console.log(this.statusBarHeight, this.titleBarHeight, '顶部高度,药丸高度');
					let total = Number(navHeight + res.statusBarHeight) / (uni.upx2px(100) / 100);
					// rpx内置转换 = xxx(px)/(uni.upx2px(100) / 100)
					this.totalHeight = Number(parseInt(total)) + 'rpx';
				},
				fail(err) {
					console.log(err);
				}
			})
			// #endif
},

获取状态栏和胶囊高度 参考链接文档:uniapp 小程序自定义导航栏计算状态栏(顶部)与导航栏(胶囊)高度_uniapp 获取自定义u-navbar的高度_九分库的博客-CSDN博客

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值