单个页面上有两个scroll-view,其中一个隐藏,在开发版手机中快速滑动bindscroll得到的scrollTop是乱的,如下图,做的操作是一直在下滑,但是拿到的scrolltop却一直在跳转。

只有快速滑动时会出现问题,如果手一直放在手机上慢慢滑动则出现概率减小,但是还是会出现。

上述问题在开发工具中并不会重现。

使用了wepy框架,

打印日志代码

hubScroll(e) {

if (e.detail.scrollTop > 150 && this.hubView.returnTopFlag) {

console.log('scrollTop (set false): ', e.detail.scrollTop)

this.hubView.returnTopFlag = false

} else if (e.detail.scrollTop < 100 && !this.hubView.returnTopFlag) {

console.log('scrollTop (set true): ', e.detail.scrollTop)

this.hubView.returnTopFlag = true

}

}


没有再设置值后调用apply方法更新页面,且所有apply之前都加了console.log('触发了X'),但是都没有打印出,所有排除由于刷新页面导致scrollTop的值刷新为原始值:

hubView: {

hubScrollTop: 1,

hubScrollHeight: (wx.getStorageSync(SYSTEM_INFO).windowHeight * wx.getStorageSync(SYSTEM_INFO).pixelRatio) - 100,

returnTopFlag: true

}


returnTopFlag为false,显示出回到顶部的触发图片,下面是触发方法:

// 接口 点击返回列表顶部

hubreturnTopClick(e) {

if (this.hubView.hubScrollTop === 0) {

this.hubView.hubScrollTop = 1

} else {

this.hubView.hubScrollTop = 0

}

console.log('触发了2')

this.$apply()

},


同样的用法在其他页面是有效的,且没有问题,但是当前页面有两个scroll-view(当然对于控制的参数肯定全部分开了)。另一个的控制参数:

commentView: {

hubScrollTop: 1,

hubScrollHeight: (wx.getStorageSync(SYSTEM_INFO).windowHeight * wx.getStorageSync(SYSTEM_INFO).pixelRatio) - 290,

returnTopFlag: true

}

日志输出:


展开全部
收起
0回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部