UNPKG

zzy-javascript-devtools

Version:

# 该Npm包已更新重构版本! [地址](https://www.npmjs.com/search?q=%40z-utils) 点击后选择其一即可

1 lines 1.14 kB
export default function infinityScrolling(n,i){function e(e,t){function o(){a=!1===u.leading?0:(new Date).getTime(),l=null,e.apply(r,c),l||(r=c=null)}function n(){var n=(new Date).getTime();a||!1!==u.leading||(a=n);var i=t-(n-a);r=this,c=arguments,i<=0||t<i?(l&&(clearTimeout(l),l=null),a=n,e.apply(r,c),l||(r=c=null)):l||!1===u.trailing||(l=setTimeout(o,i))}var l,r,c,u=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a=0;return n.cancel=function(){clearTimeout(l),a=0,l=null},n}var t,o=function(n){var i=1<arguments.length&&void 0!==arguments[1]&&arguments[1],e=n.getBoundingClientRect(),t=e.top,o=e.left,l=e.bottom,r=e.right,c=window,e=c.innerHeight,c=c.innerWidth;return i?(0<t&&t<e||0<l&&l<e)&&(0<o&&o<c||0<r&&r<c):0<=t&&0<=o&&l<=e&&r<=c};infinityScrolling.bol=!0,"IntersectionObserver"in window?new IntersectionObserver(function(n){infinityScrolling.bol&&n[0].intersectionRatio&&i()}).observe(n):(t=e(function(){infinityScrolling.bol&&o(n,!0)&&i()},100),document.addEventListener("scroll",t)),infinityScrolling.closeMonitor=function(){"IntersectionObserver"in window||(t.cancel(),document.removeEventListener("scroll",t))}}