jquery-infinite-scroll icon indicating copy to clipboard operation
jquery-infinite-scroll copied to clipboard

jQuery Infinite Scroll plugin

= jQuery Infinite Scroll

A basic infinite scrolling pattern for jQuery.

== Getting Started

=== Usage

==== Basic

$(window).infinitescroll({url: window.location.href});

==== A little more customized

$(window).infinitescroll({ url: window.location.href, triggerAt: 150, page: 4, appendTo: 'table.userlist tbody' });

=== Patterns

==== How can I specify which page of data to load?

The "page" query parameter is appended to the URL specified

==== How to tell this plugin there's no more data/pages to load?

This is determined by handing back an empty response from the server. Once this happens, this plugin stops attempting to load data.

=== Options

url: default: null The URL to fetch more data to append triggerAt: default: 300 This is the number of pixels from the bottom of the container (defaults to "document") to trigger the fetch for data page: default: 2 The page number to fetch (sets the page=# query parameter in the URL) appendTo: default: ".list tbody" The selector that .append() gets called on container: default: document This is the container used to measure scrolling, and then trigger a load

=== Events

==== That this plugin will fire

infinitescroll.beforesend: Fired just before the ajax request is given infinitescroll.finish: Fired after a successful request has finished, and the data has been inserted into the DOM infinitescroll.maxreached: Fired after the first empty response from the server. This will disable any further loading of data.

==== That this plugin listens for

infinitescroll.scrollpage: This can be used to force a full-cycle load of data and append much like what happens just after the 'infinitescroll.beforesend' event is fired. Note: The plugin is listening for this event to be fired on whatever DOM object you initially bound it to. This assumes one the examples above were used. Example: $(window).trigger('infinitescroll.scrollpage', 1);