I'm happy to announce the release of Infinite Ajax Scroll 3.1.0. This release adds support for upwards scrolling, which is a much requested feature.
For a full changelog see https://github.com/webcreate/infinite-ajax-scroll/blob/3.1.0/CHANGELOG.md
Infinite Ajax Scroll 3.1.0 available from all sources:
- https://www.npmjs.com/package/@webcreate/infinite-ajax-scroll/v/3.1.0
- https://unpkg.com/browse/@webcreate/infinite-ajax-scroll@3.1.0/
- https://github.com/webcreate/infinite-ajax-scroll/releases/tag/3.1.0
Example
You can check out an example of upwards scroll here:
https://infiniteajaxscroll.com/examples/articles/page3.html
Scroll up and previous pages will be prepended to the DOM.
Getting started with upwards scroll
Caveat: Fixed height images
Upward scroll works by calculation screen height and content height. Due to they way browser load content, especially images, this could cause incorrect measurements. This can be solved by using fixed height images.
Setup
Add a previous page link to your pagination.
<div class="pagination">
<a href="page1.html" class="prev">Prev</a>
<span class="current">2</span>
<a href="page3.html" class="next">Next</a>
</div>
Configure the prev
option.
// import if you use the NPM package
import InfiniteAjaxScroll from '@webcreate/infinite-ajax-scroll';
let ias = new InfiniteAjaxScroll('.container', {
item: '.item',
next: '.next',
prev: '.prev',
pagination: '.pagination'
});
Hook into upward scroll with events
In this example we notify the user about loading the previous page.
ias.on('prev', function (event) {
// pageIndex is 0-indexed, so we add 1
alert(`Page ${event.pageIndex + 1} is loading...`);
});
ias.on('preved', function (event) {
alert(`Page ${event.pageIndex + 1} is loaded and prepended to the page.`);
});
Inform user about first page reached
In this example we notify the user when the first page is reached.
ias.on('first', () => {
console.log('User has reached the first page');
})
How does it work?
In our previous blog post I talked about the internals of Infinite Ajax Scroll. Check it out if you are interested.