smooth-scroll-module

Smooth scroll to a target element using ES6.

Usage no npm install needed!

<script type="module">
  import smoothScrollModule from 'https://cdn.skypack.dev/smooth-scroll-module';
</script>

README

Smooth Scroll Module

A simple module that allows smooth scrolling to a specified element.

New in Version 2

Scroll Module is now in an ES6 module. You'll need to load it using a module tag or using WebPack.

Basic Setup

Initialize the module like this:

  (function(){
    var scroller = new ScrollModule();
    var target = $('.selector');
    scroller.scrollTo(target);
  });

Configuration

new ScrollModule({
  easing: this._easing,
  offset: 0,
  duration: 400,
});

easing

Easing is a function that will describe the easing of the scrollTo() operation. It is in this format:

function _easeInOutQuad(t, b, c, d) {
  t /= d / 2
  if (t < 1) return c / 2 * t * t + b
  t--
  return -c / 2 * (t * (t - 2) - 1) + b
}

offset

The offset is the number of pixels from the top of the target that scroll will end on.

duration

The duration is the number of milliseconds that scrollTo() operation will last unless the scroll is set to instant.

Methods

ScrollModule.scrollTo(target, [instant = false])

The scrollTo method is used to scroll smoothly to the specified target. The smooth scrolling will take place over the amount of time specified by the duration parameter using the easing function to define its easing curve. This method returns a promise when scrolling is complete.

The target parameter must be a JavaScript DOM selector, a valid selector string, or an integer value for the amount of distance to scroll.

The instant parameter is an optional boolean flag. If it is true, duration will be ignored and the scroll will complete immediately.