0.7.0 • Published 4 years ago

easy-scroll v0.7.0

Weekly downloads
2,664
License
ISC
Repository
github
Last release
4 years ago

A lightweight native javascript library to perform smooth scrolling.

Features

  • ~3 KB before gzip
  • no dependencies
  • scrolling in any direction - left, right, bottom, top
  • specify the amount in pixels that needs to be scrolled
  • ability to scroll any kind of scrollable element - window, div etc.
  • controlling the pace of the scrolling by specifying predefined easing presets or bezier curve points
  • ability to cancel the scrolling at any time via callback

Installation

npm install easy-scroll --save

Or you can load it via a script tag as follows:

<script src="https://unpkg.com/easy-scroll" />

Importing

ES6

import easyScroll from 'easy-scroll';

CommonJS

var easyScroll = require('easy-scroll');

Global variable

the variable easyScroll attached to window or this depending on what environment you are using

API

A function is exported by default which accepts an object with the following configuration as an argument:

PropertyValue
scrollableDomEle (required)window or any other scrollable DOM element
direction (required)the direction in which you want the element to scroll - top, left, bottom, right
duration (required)the duration in milliseconds over which you want the scrolling to happen
easingPresetlinear(default), easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInQuint, easeOutQuint, easeInOutQuint
cubicBezierPointsobject containing the 4 points to define a bezier curve {    'x1': Number(>= 0 and <= 1),    'y1': Number,    'x2': Number(>= 0 and <= 1),    'y2': Number }
onRefUpdateCallbackcallback function which is called on each tick of the scroll. The current instance of the scrolling animation is passed as an argument by default. You can use cancelAnimationFrame on this instance to cancel the scrolling.
onAnimationCompleteCallbackcallback function which is called after the scrolling is done
scrollAmountthe amount that needs to be scrolled in pixels. If this is not specified, the element will be scrolled to the end.

Example Usage

import easyScroll from 'easy-scroll';

easyScroll({
    'scrollableDomEle': window,
    'direction': 'bottom',
    'duration': 2000,
    'easingPreset': 'easeInQuad',
    'scrollAmount': 1000
});

Browser Support

Supported on all modern browsers. For older browsers, you would need the polyfills for requestAnimationFrame and cancelAnimationFrame.

0.7.0

4 years ago

0.6.0

5 years ago

0.5.1

6 years ago

0.5.0

6 years ago

0.4.5

6 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago

0.3.0

6 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.0

7 years ago

0.0.1

7 years ago