This library allows you to hide an html element (e.g. navbar) on scroll down and show it again on scroll up.
npm install ngx-hide-on-scroll --save
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
// Import NgxHideOnScrollModule
import { NgxHideOnScrollModule } from 'ngx-hide-on-scroll';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
NgxHideOnScrollModule // Import NgxHideOnScrollModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
app.component.html
<!-- Example 01 -->
<nav ngxHideOnScroll [classNameWhenHidden]="'nav--hidden'">
<h2>Navbar</h2>
</nav>
<!-- Example 02 -->
<div class="fixed-footer" ngxHideOnScroll [propertyUsedToHide]="'transform'" [valueWhenHidden]="'translateY(100%)'"
[valueWhenShown]="'translateY(0%)'">
<h2>Fixed footer, with transition on hide/show.</h2>
</div>
app.component.scss
// Example 01
nav {
position: fixed;
top: 0;
width: 100%;
color: white;
background-color: #2980b9;
padding: 0 2rem;
}
nav.nav--hidden {
transform: translateY(-100%);
}
// End - Example 01
// Example 02
.fixed-footer {
position: fixed;
bottom: 0;
width: 100%;
color: white;
background-color: #2c3e50;
padding: 0 2rem;
transition: transform 0.3s ease-in-out; // Transition on hide/show.
}
@Input() |
Type | Required | Default | Description |
---|---|---|---|---|
hideOnScroll | 'Down' | 'Up' |
optional | 'Down' |
'Down' : The element will be hidden on scroll down and it will be shown again on scroll up. 'Up' : The element will be hidden on scroll up and it will be shown again on scroll down. |
classNameWhenHidden | string | optional | none | CSS class name added to the element to hide it. When this property is set, propertyUsedToHide , valueWhenHidden , and valueWhenShown have not effect. |
propertyUsedToHide | 'transform' | 'top' | 'bottom' | 'height' |
optional | 'transform' |
The CSS property used to hide/show the element. |
valueWhenHidden | string | optional | 'translateY(-100%)' |
The value of the propertyUsedToHide when the element is hidden. |
valueWhenShown | string | optional | 'translateY(0)' |
The value of the propertyUsedToHide when the element is shown. |
scrollingElementSelector | string | optional | none | The selector of the element you want to listen the scroll event, in case it is not the browser default scrolling element (document.scrollingElement or document.documentElement ). For example '.mat-sidenav-content' if you are using Angular Material Sidenav. |
@Output() |
Type | Description |
---|---|---|
eventElementHidden | EventEmitter<void> |
Emitted when the element is hidden. |
eventElementShown | EventEmitter<void> |
Emitted when the element is shown. |
MIT