我使用的better-scroll版本是2.2.0,在移动端电商开发过程中遇到了不少的bug,在这里特别记录一下。
开发Home组件时
- 将better-scroll用在首页里:
当数据请求较慢或者图片加载慢时,BScroll计算出来的scrollerHeight要比理想中的高度小,这时就会出现滚不动页面的情况。
解决方法:可以给每个图片添加 @load="" 监听图片加载完成情况。
再通过debounce函数调用scroll.refersh() 刷新一下BScroll。
tab吸顶效果时
-
在BScroll中position: fixed 会失效
-
解决方法:
-
在最上面,多复制了一份PlaceHoliderTabControl组件对象,利用它来实现停留效果。
-
当用户滚动到一定位置时,PlaceHoliderTabControl显示出来。
-
当用户滚动没有达到一定位置时,PlaceHoliderTabControl隐藏起来。
使用vue-router时
- 使用vue-router,并且用 keep-alive 保存页面状态时,BScroll有时会将“无视”保存的页面状态。
解决方法:利用deactived函数将离开页面时滚动的位置保存到变量里,再通过actived函数把变量赋值到scroll.scrollTo方法中。
未待完续……