vue中利用scroll+js实现一个下拉刷新的功能

本文介绍如何在Vue.js应用中结合JavaScript实现下拉刷新功能。通过监听滚动事件,当用户下拉到页面顶部时,触发数据更新,从而实现页面内容的实时刷新。

 

<div class="page" ref="scroll">//用scroll把想要滚动的地方包裹起来
    <div class="wrap">         //这个是被包裹的盒子
        <div class="refresh">  //显示出来的刷新页面
            //这里用了vant里面的刷新图标
//
            <van-icon :name="iconName" :class="{active:canRefresh,rotate:iconName === 'replay'}"/>
            //请求刷新的文本
            <span>{{refreshText}}</span>
        </div>
        <div class="main">
            <p>页面的主要内容</p>
        </div>
    </div>
</div>
export default {
    //数据的初始状态
    data(){
        return{
            canRefresh:false,                
            refreshText:"下拉可以刷新...",    
            iconName:"arror-down"
        }
    },
    mounted(){
    //构建滚动视图
    let scroll = new BScroll(this.$refs.scroll)
        startY:-40, //初始位置设置为-40 让上边的刷新框隐藏起来,等到刷新的时候在展现出来
        probeType:3 //betterScroll 的一个属性 记住设置3就行了
    };
    //刷新滚动视图
    scroll.on('scrollStart',()=>{
        scroll.refresh();
    })
    scroll.on('scroll',()=>{
        if(scroll.y >= 0){       //按下鼠标开始刷新时
            this.canRefresh = true,
            this.refreshText = "释放立即刷新"
        }else{
            this.canRefresh = false,
            this.refreshText = "下拉可以刷新"
        }
    })
    scroll.on('scrollEnd',()=>{//scrollEnd 当松开鼠标时 没超过40就让他弹回去 超过才执行刷新 
        if(scroll.y > -40 && scroll.y < 0){
            this.iconName = "arr-down"
            scroll.scrollTo(0,-40,300)
        }else if(scroll.y >= 0){
            this.refreshText = "正在刷新..."
            this.iconName = "replay"
            scroll.scrollTo(0,0,300)
        }
    })
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值