前端监听滚动事件时如何完成需求防止多次出发

本文介绍了一种通过状态值控制滚动事件触发的方法,有效避免了在上拉加载更多或下拉刷新过程中滚动事件的重复触发。文章详细解释了如何使用scrollStatus变量作为开关,并在请求数据前后调整其状态值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目中往往需要触发滚动事件去完成上拉加载更多,下拉刷新等需求。发送数据请求的过程中是异步的,导致滚动事件会触发多次,踩过几次坑之后,分享下自己的实现方法。

上拉加载更多

在监听滚动事件的时候可以在当前页面设置一个状态值的变量列如:

scrollStatus // ( 0加载中,1可以触发事件,2加载完毕 );

把scrollStatus作为一个开关只有状态值等于 1 的时候才可以触发事件,接下来就是实现。

上拉到底之后触发事件:

if(scrollStatus == 1){
    scrollStatus = 0;//把开关关闭 状态值设为加载中
}

请求完毕之后 判断是不是最后一页 如果是最后一页就设置scrollStatus=2 加载完毕 反之则打开开关 设置状态 0

前端也可以根据scrollStatus状态来显示内容,列如:

scrollStatus=0 显示加载中

scrollStatus=1 到底了 最后一页

。。。。。。等等

可以利用这种思路解决很多问题 这就是做为一个基层码农的一个小分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值