scrolldir-observable
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

scrolldir-observable

Build Status

Get the direction of scrolling - as an observable

Install

$ npm install scrolldir-observable

Usage

via import

import scrollDirObservable from 'scrolldir-observable';

// will react on scroll events that happen on the document
const scrollDir$ = scrollDirObservable(window.document);

scrollDir$.subscribe(dir => {
    console.log(dir); // 'up' or 'down', depending on the scroll direction
});

⚠ The observable only emits values on the first scroll or when the scroll direction changes. So if the user e.g. scrolls down for 2 seconds, the observable will emit the value down only once.

via script tags

In case you want to use this library via script tags, you can do it like this

 <!DOCTYPE html>
<html>
    <head>
    <script type="module" src="scrolldir-observable/dist/bundles/scrolldir-observable.es.min.js"></script>
    <script nomodule src="scrolldir-observable/dist/bundles/scrolldir-observable.umd.min.js"></script>
    </head>
    ...
</html> 

It tries to load the library as an ES module and if that is not supported, it will fall back to an UMD module. Further details can be found in Jake Archibald's great article ECMAScript modules in browsers.

API

scrollDirObservable(element: HTMLElement | Document, windowElem: Window = window): Observable<Directions>

element: Some html element or the document on which scroll directions should be observed.

windowElem: The global window object - defaults to window - if you use this library directly in the browser, you need not to care about this parameter.

Directions: 'up' | 'down'

String, which describes the direction of the scroll.

Development

  • npm run build: compiles library into the dist folder:
    • standalone (used, if consumers want to bundle it themselves):
      • dist/index.js
      • dist/index.es.js
    • bundles (direct usage via script tags (see Usage)):
      • dist/bundles/scrolldir-observable.es.min.js
      • dist/bundles/scrolldir-observable.umd.min.js
    • types: dist/types/index.d.ts
  • npm test: executes all tests

License

MIT

Package Sidebar

Install

npm i scrolldir-observable

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

119 kB

Total Files

9

Last publish

Collaborators

  • janriemer