JQuery 滑动元素触底通用方法

/**
 * 页面触底执行函数
 * @param {Element} selector 滑动元素
 * @param {function} callback 执行函数
 */
function scrollToBottom({ selector = window, callback = () => {} }) {
  let timer = null;
  let scrollTopOld = 0;

  const scrollPage = function () {
    const $el = selector == window ? $(selector.document) : $(selector).children(); // 你想检查的元素的ID
    const scrollTop = $(selector).scrollTop(); // 当前滚动位置
    const viewportHeight = $(selector).height(); // 视口高度
    const elHeight = $el.height(); // 元素本身的高度
    if (viewportHeight + scrollTop >= elHeight) {
      if (scrollTopOld != 0 && scrollTopOld < scrollTop) {
        clearTimeout(timer);
        timer = setTimeout(() => {
          console.log('scrollPage', scrollTopOld, scrollTop);
          callback(this);
        }, 100);
      }
    }
    scrollTopOld = scrollTop;
  };
  $(selector).on('scroll', scrollPage);
}

使用示例:

<main class="page-main" style="height:80vh;overflow-y: scroll;">
	<div class="container" style="height:200vh;"></div>
</main>
// 分页
scrollToBottom({
  selector: '.page-main',
  callback() {
    console.log('=============分页=======================');
  },
});
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值