1.原生js实现局部滚动功能:
2.Better-Scroll的用法:
- 在index.html中使用Better-Scroll:
* 监听滚动:probeType: 0 / 1 / 2 / 3
bscroll.on(‘scroll’,(position)=>{})
* 上拉加载:pullUpLoad:true
bscroll.on(‘pullingUp’,()=>{})
* click:false button 可以监听点击
div 等其他元素不可以
click:true 必须要设置
- 在Vue项目中使用 Better-Scroll:
*
- 解决首页中 Better-Scroll 可滚动区域的问题:
* Better-Scroll 在决定有多少区域可以滚动时,是根据 ScrollerHeight 属性决定的;
* ScrollerHeight 属性是根据放在 Better-Scroll 的 content 中的子组件的高度;
* 但是我们的首页中,刚开始在计算ScrollerHeight 属性时,是没有将图片计算在内的;
* 所以,计算出来的结果是错误的(1300+);
* 后来图片加载进来之后有了新的高度,但是ScrollerHeight 属性并没有进行更新,
* 所以滚动出现了问题;
如何解决问题?
* 监听每一张图片是否加载完成,只要有一张图片加载完成了,执行一次 refresh();
如何监听图片加载完成了?
* 原生的 js 监听图片:img.οnlοad=function(){}
* Vue中监听:@load=‘方法名’
* 调用 scroll 的 refresh()
- 如何将 GoodsListItem.vue 中的事件传入到 Home.vue 中?
* 因为涉及到非父子组件的通信,所以这里我们选择了 事件总线;
* bus —> 总线
* Vue.prototype. b u s = n e w V u e ( ) − − − − > m a i n . j s 中 ∗ t h i s . bus=new Vue() ----> main.js 中 * this. bus=newVue()−−−−>main.js中∗