jmscroll
j(m)scroll : Infinite Scrolling Plugin for jQuery / jQuery Mobile
A variation of Philip Klauzinski's excellent jscroll Plugin (http://jscroll.com). The only problem i had with it was that when jQuery Mobile was included jscroll was loading more than one page at initialization. Given that, and my need for a not fixed footer for social buttons, copyrights et al. i created a simpler version that loads next set of content when the user scrolls to the starting of the footer (or some predefined pxs above it). I would really like to know what breaks jscroll when jQuery Mobile is included. If you know the answer please share it with me. Unfortunately i don't have the time to find it myself.
You can find a simple working example in the example/ folder. The parameters you can define are:
debug | TRUE or FALSE for logging in browser's console. |
autoTrigger | TRUE or FALSE for loading automatically or by clicking a button. |
autoTriggerUntil | After the defined number of pages -which will be triggered automatically- a button click will trigger the loading of next pages. This is the one of the two ways you have to reach document's footer. |
totalPages | The other one is the totalPages limit which defines the maximum page number (auto or manually triggered). |
contentSelector | Selector for loading only part(s) of the response. |
nextSelector | Selector to find the link which contains the href pointing to the next set of content. |
footerSelector | Self-explanatory: The footer selector. |
footerPadding | The distance from the footer at which to trigger the loading of the next set of content. |
footerVisible | Set this parameter to FALSE in order to hide footer while auto triggering. |
loadingContentDelay | For testing purposes -or because you have a real fancy progress bar you want your visitors to see- you can define a delay (in milliseconds) to the Ajax response. |
progressType | html | spinner | bar [For Each Option There Are Extra Parameters] : |
progressType='html' | loadingHtml | HTML Markup to show while loading next (for example a loading .gif, though it is not a good idea due to poor mobile browser copatibility). | |
progressType='spinner' | For better compatibility you can try fgnass' spin.js (http://fgnass.github.io/spin.js/). You can define all the available parameters following the names of fgnass prefixed with 'spinner' (camel case). For example: | spinnerLines | The number of lines to draw. | spinnerLength | The length of each line (in px). | spinnerWidth | The line thickness (in px). | |
progressType='bar' | If none of the above suits your needs, you can go with the pure js progress bar: a span inside a full width div which is animated (in steps) to fill all the container. | progressBarSpeed | Milliseconds between each step of the animation. Old mobile browsers may have problems if you animate in many steps or too quickly. Use sparingly. | |
callback | Callback function to be called at the end of each page load. |