function scrollToBottom({ selector = window, callback = () => {} }) {
let timer = null;
let scrollTopOld = 0;
const scrollPage = function () {
const $el = selector == window ? $(selector.document) : $(selector).children();
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('=============分页=======================');
},
});