A component that reports reading position/progress on a page while scrolling.

Usage no npm install needed!

<script type="module">
  import 10upReadingPosition from 'https://cdn.skypack.dev/@10up/reading-position';


10up Reading Position component

View official documentation for this package


npm install @10up/reading-position --save


CSS Imports

@import url("@10up/reading-position");

The styles can be imported into your existing codebase by using PostCSS imports, or by including the standalone CSS file in your project.


Create a new instance by supplying the selector to use for the reading-position and an object containing any necessary callback functions.

import ReadingPosition from '@10up/reading-position';

new ReadingPosition( '.reading-position', {
    onCreate: function() {
        console.log( 'onCreate callback' );
    scrollStart: function( percentage ) {
        console.log( 'scrollStart callback', percentage );
    scrollEnd: function( percentage ) {
        console.log( 'scrollEnd callback', percentage );
    scrolling: function( percentage ) {
        console.log( 'scrolling callback', percentage );
} );

Support Level

Active: 10up is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome.

Like what you see?

Work with 10up