Infinite Ajax Scroll 3.1.0 released

Published April 10, 2023

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:

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.