dok-ng-viewport-in-action
v0.0.7
Published
Module for make effects with html elements when scrolling page with dependence to current viewport. Also have useful service for detecting any html element in viewport
Downloads
10
Readme
Angular module for working with viewport
Installation
Load module and save in the package.jsonnpm i dok-ng-viewport-in-action
Import module into module of your app like this:
@NgModule({
imports: [DokNgViewportInActionModule.forRoot()],
})
And use in the template of component:
<div dokNgViewportInAction classes="slide-in_on"></div>
Contain of module
Attributive directive dokNgViewportInAction
Purpose: use for set any css classes for html-element or run any function by entering element into viewport.
Possible options:
classes
- Class names which will be setup for element when it will in the viewport;initTimeout
- Timeout for initialization;strictTimeout
- Timeout for class setup;imgToLoad
- Array of images with attribute[data-src]
which loading must be first;distance
- Distance from bottom edge to viewport when need setup classes;viewportInActionDebug
- Debug in the console;viewportInActionFn
- Function which will be run when classes setups.
Useful service ViewportInActionService
Public methods:
getDispatchEvent()
- Returns observable with force recalculate events;getEnableStatus()
- Returns state of service enable or disable (true/false);setEnableStatus()
- Method for service enable or disable;forceDispatch()
- Runs check setup classes;resetAnimationInContainer()
- Rerun animations into html-container;checkIsInViewport()
- Method detect when element in the viewport.
More examples
Usage module configuration
You can use default options for directive by forRoot
like this:
// AoT requires an exported function for factories
export function ViewportInActionCustomFn() {
console.log('>>> custom function for entry element into viewport');
}
@NgModule({
imports: [
BrowserModule,
DokNgViewportInActionModule.forRoot({
distance: 100,
debug: true,
customFn: ViewportInActionCustomFn,
}),
],
})
Any argument of options are not required but in example you can see all of these.