//获取滚动条可滚动高度 wx.getSystemInfo({ success: (res) => { let screenHeight = wx.getSystemInfoSync().windowHeight //获取屏幕高度 // 通过query 获取其余盒子的高度 let query = wx.createSelectorQuery().in(this) query.select('.bgc').boundingClientRect() query.select('.bgcgray').boundingClientRect() query.select('.container').boundingClientRect() query.select('.foot_submit_bar').boundingClientRect() // 通过query.exec返回的数组 进行减法 同时 去除margin 和border的 query.exec(res => { let bgcHeight = res[0].height let bgcgrayHeight = res[1].height let containerHeight = res[2].height let footHeight = res[3].height screenHeight = screenHeight - bgcHeight - bgcgrayHeight - containerHeight - footHeight - 64 console.log(screenHeight, 'screenHeight') this.setData({ clientHeight: screenHeight }); }) // this.setData({ // clientHeight: res.windowHeight - 108 // }); } });
<view class='r_first_category' style='width:160rpx'>
// 因为scroll-view必须得给定一个高度 这个高度在不同手机下 需要进行动态计算 因为很多盒子是不设置高的 <scroll-view scroll-y style='height:{{clientHeight*2}}rpx;'> <view class="r_item {{itemIndex === index ? 'item_active':'' }}" wx:for="{{category_list}}" wx:key='index' data-id="{{item.category_id}}" data-index="{{index}}" bindtap='navChange'> {{item.short_name =='' ? item.category_name:item.short_name}} </view> <!-- // 补一个虚拟的盒子顶住下处 --> <view style="margin-top:4rpx;" class='no_more'></view> </scroll-view> </view>