1.7.0 • Published 2 years ago

quovadis v1.7.0

Weekly downloads
2
License
ISC
Repository
github
Last release
2 years ago

Quovadis

Quovadis is a lightweight JavaScript library to facilitate dealing with changes in scroll-direction. It is based on the scroll-intent plugin by pwfisher with some key differences:

  • no jQuery dependency 🙅‍♂️
  • offers automatic orientation detection 🔮
  • allows setting of a custom scroll target element 🎯
  • allows targetting horizontal scroll ↔️
  • sets classes on the html element instead of data-attributes ✌️
  • dispatches scrollDirectionChange event when scroll-direction changes 🚨

Have any suggestions or feedback? Reach out!

Installation

Install via npm

npm install quovadis

Download and include via script tag

<script src="quovadis.min.js"></script>

or

Using import statement

import Quovadis from "quovadis";

Usage

JS

Initialize Quovadis by creating a new Quovadis instance.

var q = new Quovadis();
q.attach();

Quovadis accepts a list of options. Passing no options (as in the example above) defaults to:

var q = new Quovadis({
  context: document.documentElement,
  horizontal: false,
  event: true,
  historyLength: 32,
  historyMaxAge: 512,
  thresholdPixels: 64,
});

Output

By default, Quovadis will automatically add and remove classes on the html element based on scroll direction, i.e. scrolling-down and scrolling-up or scrolling-right and scrolling-left when working in horizontal mode.

Event

Unless set to do otherwise, Quovadis will also dispatch a scrollDirectionChange event to the window element. This event can be used to set up your own callback functions to fire once scroll direction changes.

window.addEventListener("scrollDirectionChange", function (e) {
  switch (e.detail.direction) {
    case "up":
      /* stuff to do when scrolling up */
      break;
    case "down":
      /* stuff to do when scrolling down */
      break;
    case "left":
      /* stuff to do when scrolling left */
      break;
    case "right":
      /* stuff to do when scrolling right */
      break;
  }
});

Options

PropertyTypeDescriptionDefault
contextElementSets the element to listen to scroll events on.window
horizontalBoolean/StringSet this to true to explicitly target horizontal scrolling. In auto mode, Quovadis will try to figure out the orientation on its own.'auto'
eventBooleanDetermines whether Quovadis should fire a scrollDirectionChange event when scroll direction changes.true
debugBooleanEnables debug mode which will output information about the currently active Quovadis instance to the console.false
historyLengthNumberThe number of records to keep to determine the scroll direction.32
historyMaxAgeNumberThe maximum duration for a record to determine the scroll direction.512
thresholdPixelsNumberThe number of pixels to scroll before re-evaluating the direction64

Methods

MethodDescription
attach()Initializes the Quovadis instance. This is also the function that returns the EventListener for the scroll context.
detach()Removes the EventListener from the Quovadis instance.
reattach(el)Attaches the Quovadis EventListener to a new scroll context. This is useful when working with dynamic AJAX content. Accepts an element parameter.

License

This project is licensed under the MIT License.

1.7.0

2 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.2.0

4 years ago

1.3.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago