使用uni.getSystemInfo获取手机信息,设置动态导航栏+状态栏的高度。

onLoad(){
   //获取状态栏+导航栏的高度
	let _that = this;
	uni.getSystemInfo({
		success(e) {
			if(e.platform == "ios"){
				_that.statusBarHeight = e.statusBarHeight + 45;
			}else{
				_that.statusBarHeight = e.statusBarHeight + 50;
			}
		}
	})
}

注意:微信小程序的e.platform是devtools,所以要加上这个判断,不然会多出来5像素

 

onLoad(){
   //获取状态栏+导航栏的高度
	let _that = this;
	uni.getSystemInfo({
		success(e) {
			if(e.platform == "ios" || e.platform == "devtools"){
				_that.statusBarHeight = e.statusBarHeight + 45;
			}else{
				_that.statusBarHeight = e.statusBarHeight + 50;
			}
		}
	})
}

然后拿到这个变量statusBarHeight设置动态值了

 比如:导航栏有切换菜单的,需要动态定位,而不是写死top值的

<view class="tabbarBox" :style="{'top':statusBarHeight + 'px'}">
	<u-tabs :list="tabbarList" :is-scroll="false" :current="currentIndex" @change="TabbarChange"></u-tabs>
</view>

其他css样式可以在css上写,只有top值是动态的

.tabbarBox{
	position: fixed;
	// top: 120upx;//这个值不能写死
	left: 0;
	right: 0;
	z-index: 999;
}

效果图,这样无论什么分辨率都是一样的

 2.还有一种用途,就是自定义导航栏的,导航栏有时会盖住内容,所以需要设置动态的padding-top值

//在最外那层view设置
<view class="find" :style="{'padding-top':statusBarHeight+'px'}">
    //内容
</view>

注意:行内样式不支持upx、rpx之类的单位


版权声明:本文为weixin_44694389原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。