scroll-view中的item高度不一,但是不设置高度就无法触发滑动监听

发布于 7 年前作者 qiang082366 次浏览最后编辑 7 年前来自 ask

scroll-view中的item高度不一,所以没办法给一个固定的高度,但是不设置固定的高度就无法触发滑动监听bindscrolltoupper,请问有没有办法解决这个问题

4 回复
pingcheng
pingcheng1 楼6 年前

bindscrolltoupper  滚动加载了一页, 在加载第二页的时候, 需要scroll-view上划一点到顶部的距离才能触发,  iOS 比较明显,大概率出现这种情况

<scroll-view id=“chatScrollView” scroll-y style=“height: {{height}}px;” upper-threshold=“100” bindscroll=“scroll” bindscrolltoupper=“upper” scroll-top=“{{scrollTop}}” scroll-into-view=“{{toView}}”>

eyang
eyang2 楼6 年前

scroll-view 不设高度,滑动区域就和内容一样大,

等于滑动的是 body,而非 scroll-view,所以最好 scroll-view 能固定高度。

需求不太清楚,感觉是类似 max-height 的效果,

如果是这样的话恐怕只能 js 解决了,套个 .wrap 然后用 boundingClientRect 来获取高度。

ama
ama3 楼6 年前
wx.getSystemInfo({
      success: function (res) {
        var clientHeight = res.windowHeight,
          clientWidth = res.windowWidth,
          rpxR = 750 / clientWidth;
        var calc = clientHeight * rpxR - 90;
 
        that.setData({
          winHeight: calc
        });
      }
    });

onLond中加入这行代码  data中给个winHeight ,wxml中 scroll-view 标签style中设置height

<scroll-view scroll-y="true" style='height:{{winHeight-30}}rpx;'>

可以用加减法控制显示高度

fang54
fang544 楼5 年前

就以最大的高度为准呗,这个距离大小,只是影响什么时候加载更多数据吧。除非你的高度差别非常大,大的基本快全屏了,小的只有几十rpx高。