1.0.11 • Published 8 years ago

scroll-tracker v1.0.11

Weekly downloads
1
License
MIT
Repository
-
Last release
8 years ago

Scroll Tracker

A small library for tracking scroll position as a percentage.

Build status

/*
 * Log to the console whenever the document.body element
 * enters one of the defined percentages in `buckets`.
 * Limit logging to happy once every 250ms.
 */
const scrollTracker = new ScrollTracker({
  element: document.body,
  buckets: [10,20,30,40,50,60,70,80,90,100],
  callback: (buckets) => console.log(buckets),
  delay: 250
});

/*
 * Destroy the logging system which was previously set up.
 */
const scrollTracker.destroy();

Table of Contents

Requirements

Scroll Tracker is a CommonJS module and available on npm. To use within a browser, a bundling tool is required (Browserify/Webpack).

Usage

Scroll Tracker is easiest to use when installed with npm:

npm install scroll-tracker

Then you can load the module into your code with a require call:

const ScrollTracker = require('scroll-tracker');

The ScrollTracker variable is a constructor.

new ScrollTracker({ element: HTMLElement, buckets: Array[Number...], callback: Function (Array[Number...]), delay: Number})

Construct a new ScrollTracker instance.

  • element is the element to track scroll percentage of (HTMLElement).
  • buckets is the set of scroll percentages to track (ArrayNumber...).
  • callback is the function to be called when page has scrolled into a bucket (Function (ArrayNumber...)).
  • delay is the amount of milliseconds to wait between calling the callback (Number).

Example

/*
 * Log to the console whenever the document.body element
 * enters one of the defined percentages in `buckets`.
 * Limit logging to happy once every 250ms.
 */
const scrollTracker = new ScrollTracker({
  element: document.body,
  buckets: [10,20,30,40,50,60,70,80,90,100],
  callback: (buckets) => console.log(buckets),
  delay: 250
});

A ScrollTracker instance has the following methods.

.destroy()

Destroy a ScrollTracker instance, removing all event listeners added during construction of the instance.

Example

/*
 * Destroy the logging system which was previously set up.
 */
const scrollTracker.destroy();

Contributing

To contribute to Scroll Tracker, clone this repo locally and commit your code on a separate branch. Please write unit tests for your code, and run the linter before opening a pull-request:

npm test  # run all unit tests
npm run lint  # run the linter

License

Scroll Tracker is licensed under the MIT license.

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago