Skip to content

Instantly share code, notes, and snippets.

@nyilmaz
Created April 16, 2014 13:42
Show Gist options
  • Save nyilmaz/10877339 to your computer and use it in GitHub Desktop.
Save nyilmaz/10877339 to your computer and use it in GitHub Desktop.
var infiniteScroll = {
defaults: {
url: undefined, // ajax requesti yapilacak url
initialOffset: 0, // baslangictaki offset (orn sayfada halihazirda 3 tane gosterilmistir bu durumda initialOffset 3 verilmeli)
offsetIncrement: 5, // her ajax requestinde kac eleman istenecegi
containerSel: undefined, // append edilecek container
loadingElemSel: undefined, // ajax requesti yapilirken cikacak gorsel
allShownElemSel: undefined // butun elemanlar gosterildiginde (ie sayfa sonunda) cikacak gorsel
},
bind: function (options) {
this.options = $.extend(this.defaults, options);
var $window = $(window);
var _this = this;
var offset = this.options.initialOffset;
var infiniteScrollEnabled = true;
$window.on('scroll', function () {
if(infiniteScrollEnabled && ($window.scrollTop() == $(document).height() - $window.height())) {
$.get(_this.options.url, {offset: offset}, function (data) {
if($.trim(data).length > 0) {
if(_this.options.loadingElemSel) {
$(_this.options.loadingElemSel).hide();
}
$(_this.options.containerSel).append(data);
offset += _this.options.offsetIncrement;
} else {
// butun elemanlar gosterildi
infiniteScrollEnabled = false;
if(_this.options.allShownElemSel) {
$(_this.options.allShownElemSel.show());
}
}
});
if(_this.options.loadingElemSel) {
$(_this.options.loadingElemSel).show();
}
}
});
}
};
@cemo
Copy link

cemo commented Apr 16, 2014

super

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment