小程序获取高度以及单位转换px转rpx

需求:在做小程序头部也就是导航栏和状态栏fixed定位,内容栏要获取到top值,也就是状态栏高度+导航栏高度44px,(因为我的需求中还有一个banner,而设计稿给到的是rpx,状态栏和导航栏则是px,需要统一,因此涉及到单位转换)

//px转为rpx
pxToRpx(px) {
	const screenWidth = uni.getSystemInfoSync().screenWidth //窗口宽度
	const statusHeight = uni.getSystemInfoSync().statusBarHeight //状态栏
    //val就是状态栏高度+导航栏高度(px为传入的导航栏的高度) 此时单位是px
	const val = px + statusHeight
	this.headHeight = (750 * Number.parseInt(val)) / screenWidth //转换单位为rpx
	return this.headHeight
},
//获取不同banner下的top高度
getHeight() {
	this.pxToRpx(44)
    //这里是按需加减 我这三个分别是不同的banner
	this.headH = this.headHeight + 75 + 34 + 'rpx'
	this.bannerH1 = this.headHeight + 271 + 75 + 34 + 'rpx'
	this.bannerH2 = this.headHeight + 231 + 75 + 34 + 'rpx'
},

还有rpx转px 逻辑一样,一般来说不用特意转px,最后解析都会自动解析为px,这里个方法一般也是因为不同单位之间需要计算时使用


//rpx转为px 传参类型是数字(Number) 
rpxTopx(rpx) {
	const screenWidth = uni.getSystemInfoSync().screenWidth //窗口宽度
    let px = (screenWidth / 750) * Number.parseInt(rpx) //转换单位为px
	return  Math.floor(px)
}

//px转rpx 传参类型是数字(Number)
pxToRpx(px) {
	const screenWidth = uni.getSystemInfoSync().screenWidth //窗口宽度
    let rpx =  (750 * Number.parseInt(px)) / screenWidth //转换单位为rpx
	return  Math.floor(rpx)
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值