vue实现下拉刷新,下拉加载

2020-04-06  本文已影响0人  plum_meizi

html代码

<div
class="content"
@touchstart="touchstart"
@touchmove="touchmove"
@touchend="touchend"
ref="cusMcontent"
></div>

js代码

defaultOffset: any = 50; // 默认位移
top: any = 0; // 滑动距离
scrollIsToTop: any = 0; // 滚动条位置
startY: any = 0; // 开始位置
isDropDown: any = false; // 是否可刷新

touchstart(e) {
    // 记录初始位置
    this.startY = e.targetTouches[0].pageY;
}
touchmove(e) {
    // 是否触顶
    this.scrollIsToTop = (this.$refs as any).cusMcontent.scrollTop;
    // 触顶并手势是下拉
    if (e.targetTouches[0].pageY > this.startY && this.scrollIsToTop === 0) {
        // 下拉
        this.isDropDown = true;
        this.top = e.targetTouches[0].pageY - this.startY;
    } else {
        this.isDropDown = false;
    }
}
touchend(e) {
    if (this.isDropDown) {
        if (this.top >= this.defaultOffset) {
            // 下拉位移超过设置值,刷新
            this.init();
        } else {
            // 下拉位移小于设置值,初始化值
            this.reset();
        }
    }

}
reset() {
    this.isDropDown = false;
    this.top = 0;
}
上一篇下一篇

猜你喜欢

热点阅读