2.0.0 • Published 3 years ago

@terminus/ui-scrollbars v2.0.0

Weekly downloads
22
License
MIT
Repository
github
Last release
3 years ago

CI/CD Status Codecov MIT License
NPM version Library size

Table of Contents

Installation

Packages that need to be installed

  • @angular/cdk
  • @angular/common
  • @angular/core
  • @angular/flex-layout
  • @angular/forms
  • @angular/platform-browser
  • @terminus/design-tokens
  • @terminus/fe-utilities
  • @terminus/ui-utilities
  • @terminus/ui-scrollbars
  • date-fns
  • ngx-perfect-scrollbar

Use the ng add command to quickly install all the needed dependencies:

ng add @terminus/ui-scrollbars

Modules that need to be in NgModule

  • TsScrollbarsModule

CSS imports

In your top level stylesheet, add these imports:

@import '~@terminus/design-tokens/css/library-design-tokens.css';
@import '~@terminus/ui-styles/terminus-ui.css';

Usage

You must set a fixed height and/or width to enable scrollbars (otherwise the browser will just continue making the container larger to fit the content).

<ts-scrollbars style="height: 300px; width: 400px;">
  ...
</ts-scrollbars>

Disable

The scrollbars can be disabled dynamically if needed:

<ts-scrollbars [isDisabled]="true">
  ...
</ts-scrollbars>

Update

If the scrollbars content is dynamically updated, you will need to update the scrollbars instance:

<!-- Get a reference to the component class -->
<ts-scrollbars #scrollbars="tsScrollbars">
  ...
</ts-scrollbars>
...

@ViewChild(TsScrollbarsComponent, {static: false})
public scrollbars!: TsScrollbarsComponent;

myUpdate() {
  // Update the content
  this.updateScrollContent();

  // Update the scrollbars
  this.scrollbars.update();
}

Manual Position Control

Scrolling methods can be called directly once a reference to the component is attained:

<!-- Get a reference to the component class -->
<ts-scrollbars #scrollbars="tsScrollbars">
  ...
</ts-scrollbars>
...
// A reference to the component instance:
@ViewChild(TsScrollbarsComponent, {static: false})
public scrollbars!: TsScrollbarsComponent;
...

The following scroll examples will assume that a reference has already been created.

Scroll to fixed location

@ViewChild(TsScrollbarsComponent, {static: false})
public scrollbars!: TsScrollbarsComponent;

scrollToTop() {
  // Scroll the container to the very top
  this.scrollbars.scrollToTop();
}

Available fixed location methods:

Method
scrollToBottom()
scrollToLeft()
scrollToRight()
scrollToTop()

Scroll to x/y location

Scroll the container to a specific x/y location:

@ViewChild(TsScrollbarsComponent, {static: false})
public scrollbars!: TsScrollbarsComponent;

scrollToCoordinates() {
  //                       x    y    speed
  this.scrollbars.scrollTo(100, 250, 200);
}

Scroll to element

The component can scroll a nested element to the top of the scroll container:

@ViewChild(TsScrollbarsComponent, {static: false})
public scrollbars!: TsScrollbarsComponent;

scrollToElement() {
  // This supports any string that can be passed to `querySelector()`
  this.scrollbars.scrollToElement('.my-class');
}

Events

<ts-scrollbars (scrollDown)="myFunc($event)">
  ...
</ts-scrollbars>
Available events
scrollDown
scrollLeft
scrollRight
scrollUp
scrollX
scrollY
xReachEnd
xReachStart
yReachEnd
yReachStart
2.0.0

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.11

4 years ago

1.0.12

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.0.1

4 years ago