需求:一个使用了easyscroll组件的vue项目,想要滚动触底,加载新的数据。
1.找到组件源文件main.vue;重构handleScroll();
handleScroll() {
const wrap = this.wrap;
if(this.preScrollHeigt !== wrap.scrollHeight){
this.preScrollHeigt = wrap.scrollHeight;
this.update();
}
this.moveY = ((wrap.scrollTop \* 100) / wrap.clientHeight);
// 判断滚动得高度触底,给父组件传递一个数据。
if(wrap.scrollTop == ( wrap.scrollHeight - wrap.clientHeight)){
this.$emit('scrollBottom', true);
this.update();
}else{
this.$emit('scrollBottom', false);
}
this.moveX = ((wrap.scrollLeft \* 100) / wrap.clientWidth);
},
<EasyScrollbar @scrollBottom="getScrollBottom">
getScrollBottom(data){
if (data && !this.loading){
this.loading = true
if (this.page < Math.ceil(this.waringListTotal/this.pageSize)){
this.page ++
this.warningGetData() //接口方法,具体细节根据自己的项目需要写这个方法。
}else{
// 给个没有更多的提示,OK了
}
}
},
最后,虽然我很想吐槽一下easyscroll 组件,用起来需要自己看源码,但是本人又没能力自己写出好的滚动组件,目前也没有找到更好的合适的滚动组件,所以只能重构后记录在册,防止下次遇到同样的问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。