Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@hudsonfoo/skinnyscroll

hudsonfoo10MIT1.1.0

Extra itty bitty scroll watcher.

scroller, scroll, scroll class, scrolljs, scroll js, scrollTo, scroll events, scrollintoview, scroll into view, window scroll, window scroll polyfill, scroll into view polyfill

readme

@hudsonfoo/skinnyscroll

npm (scoped) npm bundle size (minified)

Extra itty bitty scroll watcher.

Install

$ npm install @hudsonfoo/skinnyscroll

or

$ yarn @hudsonfoo/skinnyscroll

Usage

Use attribute data-skinnyscroll and pass options as JSON.

SkinnyScroll will query the DOM for nodes with that attribute after being loaded. You can re-query the DOM with the update method.

Basic usage

<div data-skinnyscroll='{ "name": "my-event-name" }'></div>
const SkinnyScroll = require('@hudsonfoo/skinnyscroll');

SkinnyScroll.on('my-event-name', element => {
  // Do whatever you want, but as an example:
  element.addClass('slideInUp'); // animate.css
});

With options

<!-- This will call your event 200 pixels after entering the screen from below -->
<div data-skinnyscroll='{ "name": "my-event-name", "distance": 200 }'></div>

Fire only once

const SkinnyScroll = require('skinnyscroll');

function makeItSlide(element) {
  // Turn off event listener
  SkinnyScroll.off('my-event-name', makeItSlide);

  // Do whatever you want
}

SkinnyScroll.on('my-event-name', makeItSlide);

Fire and turn off for a short amount of time

const SkinnyScroll = require('skinnyscroll');

function makeItSlide(element) {
  // Turn off event listener
  SkinnyScroll.off('my-event-name', makeItSlide);

  setTimeout(() => {
    SkinnyScroll.on('my-event-name', makeItSlide);
  }, 500);

  // Do whatever you want
}

SkinnyScroll.on('my-event-name', makeItSlide);

Methods list

Method Arguments Description
on name {String}, callback {Function} Will fire callback when event is called
off name {String}, callback {Function} Turns off callback for this event
add {HTMLNode} Adds new HTML node to the watch list
update {void} Re-queries DOM for skinnyscroll nodes