This package has been deprecated

Author message:

package is no longer maintained

@wildebeest/scroll
TypeScript icon, indicating that this package has built-in type declarations

0.3.17 • Public • Published

Scroll Module

Enables scrolling in absolute and fixed elements

Installation

npm install --save @wildebeest/scroll

Requirements

It's usefull to know these libraries:

  • inversify
  • @wildebeest/js-modules

Preview

Usage

After the application starts with app.run([ScrollModule]) you can create scroll boxes. ScrollBox is enabled by creating new instance of this class. First select DOM element that is suppous to became scrollale and then create new instance of ScrollBox an `initialize it.

let app: Application = new Application();
app.run([ScrollBox]);

let element: HTMLElement = document.querySelector('.scroll-box');
let scrollBox: ScrollBox = app.getContainer().get(ScrollBox);
scrollBox.initialize(element, {});

Second, initialize parameter allows you to customize behavior of this scroll box.

ScrollBar and ScrollMark will have scroll-bar and scroll-bar__mark css class by default. You should add style to those two classes in your css file.

.scroll-box {
    position: absolute;
    overflow: hidden;
}

.scroll-box--hover:hover .scroll-bar, .scroll-box--show .scroll-bar, .scroll-box--always-show .scroll-bar {
    transform: translateX(0%);
}

.scroll-bar {
    position: absolute;
    width: 4px;
    right: 0px;
    top: 0px;
    height: 100%;
    transform: translateX(100%);
    transition: transform ease 160ms;
}

.scroll-bar__mark--move {
    cursor: move;
}

.scroll-bar__mark {
    position: absolute;
    width: 4px;
    right: 0px;
    top: 50%;
    cursor: grab;
}

Scroll Event

ScrollBox emits wbScroll event that contains 4 values:

  • vertical: float number in <0, 1> range that represent the percentage of vertical scroll position
  • horizontal: float number in <0, 1> range that represent the percentage of horizontal scroll position
  • x: number that represents scrol value from left in pixels
  • y: number that represents scrol value from top in pixels

Customization

This module should be highly customizable. You can add your own css classes and change visuals.

Custom ScrollBar class

To add specific class to all scroll bars, just set template for creating scroll bars.

let app: Application = new Application();
app.run([ScrollModule]);

let builder: ComponentBuilder = app.getContainer().getNamed('ComponentBuilder', 'scroll-bar');
builder.setTemplate('<div class="my-scroll-bar-class"></div>');

Custom ScrollMark class

Scroll mark is a litle nob that moves inside of scroll bar. To add specific class to all scroll marks, just set template for creating scroll marks.

let app: Application = new Application();
app.run([ScrollModule]);

let builder: ComponentBuilder = app.getContainer().getNamed('ComponentBuilder', 'scroll-mark');
builder.setTemplate('<div class="my-scroll-mark-class"></div>');

Package Sidebar

Install

npm i @wildebeest/scroll

Weekly Downloads

10

Version

0.3.17

License

MIT

Unpacked Size

54.8 kB

Total Files

42

Last publish

Collaborators

  • pipan