一、问题描述:
今天开发遇到了一个前端样式问题。由于业务需要,onLoad()获取到手机屏幕长度然后将长度动态绑定至view标签的sytle属性中,在HbuilderX内置浏览器中显示正常,但在微信小程序中却显示不出来绑定的样式,下面是绑定时的代码。
页面标签部分:
<view :style="{height:phoneHight}" class="content">
... ...
</view>
script部分:
export default {
data() {
return {
phoneHight:'50upx',
}
},
onLoad() {
uni.getSystemInfo({
success:(res)=>{
console.log("手机可用高度:"+res.windowHeight*2+"upx");
this.phoneHight = res.windowHeight*2+55+"upx";
}
})
},
二、解决措施
试过了很多方式都不能解决问题,最后发现时微信小程序动态绑定时不能识别upx单位,故在动态绑定时需要将upx转换成px的形式。
错误代码:
this.phoneHight = res.windowHeight*2+55+"upx";
正确代码:
this.phoneHight = res.windowHeight+25+"px";
当然也可以用**uni.upx2px()**函数来进行单位之间的转换
至此,问题解决