Better-Scroll踩坑系列–可滚动区域问题
滚动区域的Bug分析和解决
困惑了我很久的问题,就是我们使用better-scroll滚动时,滚动区域有时候滚动到一半就滚动不下去了。这就很苦恼,接下来我们来分析一下产生的原因:
因为better-scroll管理挂载的区域时,会自动在底层计算可滚动的高度scrollerHeight。(这是重点) ,而当我们通过axios去异步请求数据,获取到大量的图片数据使其在GoodsList中展示出来时,原来我们管理的区域高度很低,但是通过图片的加载出来,展现在该区域中,该区域会被拉的非常大。而此时就出现问题了,有两种情况:
-
我们的数据加载的非常之快(或者说刷新缓存数据),在better-scroll计算可滚动高度之前,就已经加载完毕了,此时区域已经被撑开了,而better-scroll再来计算可滚动区域高度的时候,那么就是正确的高度。
-
我们的数据加载,图片展示在better-scroll计算可滚动高度之后,此时better-scroll已经计算出了可滚动高度,而我们的图片又全部加载出来了,此时用户只能根据better-scroll已经计算好的高度来进行滚动,也就是说只能滚动一小部分,而在一小部分之后那么就不可以进行滚动了。
以上谨作为个人学习记录!见解,又不对的地方,恳请斧正。