需求:一个使用了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 组件,用起来需要自己看源码,但是本人又没能力自己写出好的滚动组件,目前也没有找到更好的合适的滚动组件,所以只能重构后记录在册,防止下次遇到同样的问题。


请鹅出战
328 声望3 粉丝

当我带上墨镜,也许我就真的瞎了。