@terminus/ui-scrollbars v2.0.0
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-scrollbarsdate-fnsngx-perfect-scrollbar
Use the ng add command to quickly install all the needed dependencies:
ng add @terminus/ui-scrollbarsModules 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 |
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago