之前做个一个多个tab的列表页,每个tab下的内容对应的就是swiper,而小程序的swiper的高度默认是150px,不能自适应内容高度,最开始我们的列表内容每个卡片的高度都是差不多的,当时做的是把每个卡片高度固定400px,然后用固定的高度*每个tab下卡片的数量来得到每个swiper的高度,具体博客链接:https://blog.youkuaiyun.com/this_ITBoy/article/details/103869457。但是,后来出了新的需求,如图:

可以看到,第一个卡片加入了物流的信息,而第二个卡片没有物流信息,这样的话,高度肯定不能固定成一样的了,所以需要分别计算出每个tab下的swiper里面的每个卡片的高度然后乘以卡片数量,才能动态得到每个swiper的高度。改动的代码如下:
1、data里面添加一个orderListHeight对象:
data: {
...以前的数据不变,
orderListHeight:{}//每个swiper的对应高度存放对象
},
2、请求列表数据的时候,每次加载不同的tab展示出不同的swiper,需要计算不同的高度,并保存到data的orderListHeight对象中:
//请求列表
getOrderList: function(cid) {
var self = this;
this.setData({
curListId: cid,
loadFlag:true

博客讲述了在小程序中遇到的swiper高度自适应问题。原有的固定高度方案因新增需求变得不可行,现在通过计算每个swiper内卡片的实际高度,动态设置swiper高度,实现每个swiper根据内容自适应。
最低0.47元/天 解锁文章
1775

被折叠的 条评论
为什么被折叠?



