Skip to content

Lightweight cross-browser library that enables you to create a watcher for a given element, and receive a callback for it's intersections with the viewport

License

Notifications You must be signed in to change notification settings

outbrain-inc/ViewabilityHelper

Repository files navigation

ViewabilityHelper

Build Status npm version

Lightweight cross-browser library that enables you to create a watcher for a given element, and get back a callback when it has entered the viewport

Viewability Helper uses Intersection Observer API if available. If it's not, the library makes the calculations itself. Browser support for the Intersection Observer API can be found here.

Note: Not working when Intersection Observer is not supported and the script is running inside an iframe.

Install

npm install --save viewability-helper

Usage

// import the module
import ViewabilityHelper from 'viewability-helper';
// -or-
const ViewabilityHelper = require('viewability-helper');

// Create a new observer for an element with a callback function
const myObserver = new ViewabilityHelper(element, callback);
// Fire in the hole!
myObserver.observe();

// With options
myObserver = new ViewabilityHelper(element, callback, {callbackParams: ['Element number 1']});

Options

callbackParams (Array) - List of parameters passed to the callback function

intersectPercentage (String) - Intersection percentage, ex: "0", "0.2" etc..

scrollDimmer (Integer) - Interval for triggering element viewability watch (msec)

unobserve (Boolean) - Should the observer keep observing the element after first viewability event or not

rootMargin (String) - For Intersection Observer API, The root element margin

threshold (Array) - For Intersection Observer API, List of intersection ratio thresholds of the element with the viewport

Contribute

Please first fork this repository, make your changes and then create a pull request.

Start by

npm install

And then build it with

npm run dev

About

Lightweight cross-browser library that enables you to create a watcher for a given element, and receive a callback for it's intersections with the viewport

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published