共计 756 个字符,预计需要花费 2 分钟才能阅读完成。
scroll-view 是否触底问题
众城世家聊天页面中,要实现微信那种,如果有新音讯,在底部的话就滚动到新音讯,如果没有在底部的话就不滚动,这个时候须要判断是否在底部,经 uview
开发人员帮忙,进行尝试。
第一次尝试
给 scroll-view
加scroll
和 scrolltolower
事件,如果触发 scroll
事件的话就设置不触底,如果触发 scrolltolower
事件的话就触底,这个时候发现触底当前还是会触发 scroll
事件的,这种计划不行。
第二次尝试
在第一次尝试的根底上,咱们给 scrolltolower
事件一个提早,也就是触发 scrolltolower
事件当前 100ms 后再设置触底,这个时候短距离滚动,还是会偶然触发 scrolltolower
事件,这种计划也不行。
第三次尝试
在第二次的根底上,咱们设置很小的触底间隔 lower-threshold
,设置为 5,这个时候根本触底判断就很精确了,然而,这个时候有呈现个意外的状况,第一次进来的时候咱们会让页面滚动到底部,this.scrollTop = 9999
,然而这个滚动会触发scroll
事件,然而并不会触发 scrolltolower
事件,这种计划也不完满。
第四次尝试
在第三次的根底上,咱们在第一次进来的时候,页面渲染完当前设置已触底,这个时候发现就算最初设置已触底,触底状态还是不触底,失败。
第五次尝试
咱们在页面渲染实现当前,提早 100ms,这个时候发现触底判断就正确了。到此结束
总结
- 设置
scroll
和scrolltolower
事件,并设置lower-threshold
小一点,倡议设置为 5scroll
事件触发当前设置不触底,scrolltolower
事件触发当前,提早 100ms 设置触底- 第一次进来页面当前,当页面渲染实现当前,提早 100ms 设置触底
留言
点击留言
正文完