微信小程序中隐藏的元素高宽都为0是正常的吗?不是说隐藏了但是会渲染吗?怎么隐藏了拿到的位置和高宽数据都是0呢
// page/index/index.wxml
<view class="test" hidden="true">
<view style="height: 100rpx; width: 200rpx;">隐藏测试内容</view>
</view>
// page/index/index.js
onLoad: function () {
var query = wx.createSelectorQuery(); //创建节点选择器
const that = this;
query.select('.test').boundingClientRect(function (rect) {
const addressWidth = rect.width;
console.log(rect)
}).exec();
},
目录结构:
运行结果:无论是高宽还是边距都为0,如果用wx:if来实现的话能拿到但是会频繁的创建和删除组件,造成性能问题,有没人解答下,谢谢
这个问题解决了吗
好的,谢谢啦
按你的意思,如果是高100,隐藏后就应该得有一大片空白了?
CSS还需要再学习。
需求:项目要求多组tabBar,有用户,管理员等多个角色
实现:自定义的底部导航,实现思路是导航为index page页面,四个导航内容作为组件的形式加载进来(防止闪现);
问题:一次性加载所有组件时,隐藏的组件获取到的高度为0,无法进行数据设置?
元素能获取到,但是高度和宽度都为0
一个index Page页面中四个组件,是一次性加载的,根据不同的tabBar显示不同的组件,
第一次加载后隐藏的组件无论用那个方法都拿到组件元素高宽都为0
我刚刚把index Page页面的隐藏改成 wx:if 能够获取隐藏组件的高度,但是频繁的创建会消耗性能,通过隐藏的话会更好,请问有什么好的办法吗?