js两种滚动事件写法

方式一:可判断滚动条滚动方向。

$(window).scroll(() => {
    // 滚动条距文档顶部的距离, || 是做兼容处理的
    let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
    // 滚动条滚动的距离
    let scrollStep = scrollTop - this.oldScrollTop            
    // 更新-滚动前,滚动条到文档顶部的距离
    this.oldScrollTop = scrollTop

    if (scrollStep > 0) {
        // console.log('滚动条向下滚动')
    }
    else {
        // console.log('滚动条向上滚动')
    }
})

根据滚动条滚动的距离是否大于 0 来判断向上还是向下滚动。不太适合用于下滚无限加载,因为加载需要有固定的底部距离,此写法不太好确定,效果一般。

方式二:只判断滚动条底部到可视区底部的距离,即可视区底部到页面底部的距离,因此方向是只向下的。

$(window).scroll(() => {
    let scrollH = document.body.scrollHeight
    let scrollT = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
    let clientH = document.documentElement.clientHeight
    let instance = scrollH - scrollT - clientH

    if (instance < 50) {
        // console.log('滚动条向下滚动')
    }
})

两种方式对于向下滚动没有大的区别,第二种方向是专门针对向下滚动的,用于下滚无限加载很简单实用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值