1.0.0 • Published 2 years ago

@uvarov.frontend/vanilla-sticky v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Vanilla JS Sticky v1.0.0

Vanilla JS sticky block without using extra packages. DEMO

Initialize

Get vanilla-sticky in one of the following ways:

NPM

npm install @uvarov.frontend/vanilla-sticky

Then import it in your javascript file

import VanillaSticky from '@uvarov.frontend/vanilla-sticky';

or Script tag

It’s possible to manually include the necessary <script> tags in the end body of your HTML page and then initialize a calendar via browser globals.

CDN

<script src="https://cdn.jsdelivr.net/npm/@uvarov.frontend/vanilla-sticky@1.0.0/vanilla-sticky.min.js"></script>

or locally

<script src="./js/vanilla-sticky.min.js"></script>

API

The HTMLElement option is mandatory, all other options are optional.

NameDefaultDescription
HTMLElementDOM object
positionautoSpecifies which edge the block will stick to. Available options: 'auto', 'top', 'bottom'.
stretchtrueStretch the content to the full height of the screen minus the indents if the content is less than the height of the screen.
resizetrueRecalculate the height of the content and its location each time the screen height changes.
indents.top0Specify the top indents after which the block will stick.
indents.bottom0Specify the bottom indents after which the block will stick.
window.minnullThe minimum screen width after which the module stops working.
window.maxnullThe maximum screen width after which the module stops working.

Usage example

const sidebar = new VanillaSticky({
  HTMLElement: document.querySelector('.sidebar'),
  position: 'bottom',
  stretch: false,
  resize: true,
  indents: {
   top: 70,
   bottom: 10,
  },
  window: {
   min: 1200,
   max: null,
  },
 });

 sidebar.init();

Change settings and update:

sidebar.position = 'top';
sidebar.stretch = true;
sidebar.indents.top = 30;
sidebar.indents.bottom = 20;

sidebar.update();

License

MIT License

Author

Yuri Uvarov (uvarov.frontend@gmail.com)