-
Notifications
You must be signed in to change notification settings - Fork 2
/
infinite-scroll.min.js
1 lines (1 loc) · 1.55 KB
/
infinite-scroll.min.js
1
!function(a){a.infiniteScroll=function(b,c){function o(b){var c;c=a.isFunction(k.modifyResponse)?k.modifyResponse(b):a(b),k.timeout>0?setTimeout(function(){p(c)},k.timeout):p(c),i.iteration++}function p(b){a.isFunction(k.insert)?k.insert(d,b):d.append(b),a.isFunction(k.afterInsert)&&k.afterInsert(),t(),n.on("scroll.infiniteScroll",s),j.allowedToScroll=!0}function q(){var b;if(j.allowedToScroll=!1,f.off("scroll.infiniteScroll"),a.isFunction(k.beforeAjax)&&k.beforeAjax(l),"undefined"==typeof m)throw new Error('Please define ajax by calling "setAjax()"');b=a.ajax(m),b.done(function(b,c){"success"==c&&(a.isFunction(k.onAjaxSuccess)&&k.onAjaxSuccess(l),o(b))})}function r(){n.on("scroll.infiniteScroll",s),n.on("resize.infiniteScroll",t)}function s(){return j.allowedToScroll?(n.scrollTop()>=i.scrollOffset&&q(),void 0):!1}function t(){i.scrollOffset=d.height()-n.height(),i.scrollOffset-=k.threshold}function u(a){m=a}var k,l,m,n,d=a(b),f=a(window),h=(a(document),{loadOnInit:!0,scroller:a(window),threshold:200,timeout:200,modifyResponse:null,insert:null,onInit:null,beforeAjax:null,onAjaxSuccess:null,afterInsert:null}),i={iteration:1,scrollOffset:0},j={allowedToScroll:!0},v=function(){k=a.extend({},h,c),n=k.scroller,t(),l={settings:k,properties:i,setAjax:u},a.isFunction(k.onInit)&&k.onInit(k),k.loadOnInit&&q(),r(),v=function(){return l}};return v()},a.fn.infiniteScroll=function(b){return this.each(function(){if("undefined"==typeof a(this).data("infiniteScroll")){var c=new a.infiniteScroll(this,b);a(this).data("infiniteScroll",c)}})}}(window.jQuery||window.Zepto||window.$);