Sticky
Angular Bootstrap 5 Sticky
Sticky is a component which allows elements to be locked in a particular area of the page. It is often used in navigation menus.
Note: Read the API tab to find all available options and advanced customization
Basic example
To start using sticky just use a mdbSticky directive on the element you want to pin
        
            
            <div style="min-height: 500px" class="text-center" #boundary>
              <a
                id="sticky"
                type="button"
                href="https://mdbootstrap.com/docs/angular/getting-started/installation/"
                class="btn btn-outline-primary bg-body sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                >Download MDB
              </a>
            </div>
          
        
    
Sticky bottom
      You can pin element to bottom by adding
      [stickyPosition]="'bottom'"
    
        
            
            <div style="min-height: 500px" class="text-center" #boundary>
              <img
                id="MDB-logo"
                src="https://mdbootstrap.com/wp-content/uploads/2018/06/logo-mdb-jquery-small.webp"
                alt="MDB Logo"
                class="sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                [stickyPosition]="'bottom'"
                [stickyDirection]="'both'"
              />
            </div>
          
        
    
Boundary
      Set [stickyBoundary]="boundary" so that sticky only works inside the parent
      element. Remember to set the correct parent height.
    
        
            
            <div style="min-height: 500px" class="text-center" #boundary>
              <img
                id="MDB-logo"
                src="https://mdbootstrap.com/wp-content/uploads/2018/06/logo-mdb-jquery-small.webp"
                alt="MDB Logo"
                class="sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                [stickyDirection]="'down'"
              />
            </div>
          
        
    
Outer element as a boundary
You can specify an element to be the sticky boundary.
        
        
            
            <div
              style="min-height: 500px"
              class="d-flex flex-column justify-content-center text-center"
            >
              <div>
                <img
                  id="MDB-logo"
                  src="https://mdbootstrap.com/wp-content/uploads/2018/06/logo-mdb-jquery-small.webp"
                  alt="MDB Logo"
                  class="sticky"
                  mdbSticky
                  [stickyBoundary]="boundary"
                  [stickyDirection]="'both'"
                />
              </div>
              <div #boundary class="mt-auto" style="height: 5rem">Stop here</div>
            </div>
          
        
    
Direction
      Default direction of sticky component is down. You can change it by setting
      data-mdb-sticky-direction="up" or
      data-mdb-sticky-direction="both"
    
        
            
            <div style="min-height: 500px" class="text-center" #boundary>
              <a
                type="button"
                class="btn btn-primary sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                [stickyDirection]="'up'"
              >
                Up
              </a>
              <a
                type="button"
                class="btn btn-primary sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                [stickyDirection]="'down'"
              >
                Down
              </a>
              <a
                type="button"
                class="btn btn-primary sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                [stickyDirection]="'both'"
              >
                Both
              </a>
            </div>
          
        
    
Sticky - API
Import
        
            
          import { MdbStickyModule } from 'mdb-angular-ui-kit/sticky';
          …
          @NgModule ({
            ...
            imports: [MdbStickyModule],
            ...
          })
        
        
    
Inputs
| Name | Type | Default | Description | 
|---|---|---|---|
              stickyActiveClass
             | 
            String | '' | 
            Set custom active class | 
              stickyBoundary
             | 
            HTMLElement | null | 
            set the reference of the boundary element | 
              stickyDelay
             | 
            Number | 0 | 
            Set the number of pixels beyond which the item will be pinned | 
              stickyDirection
             | 
            String | 'down' | 
            Set the scrolling direction for which the element is to be stikcky | 
              stickyOffset
             | 
            Number | 0 | 
            Set the distance from the top edge of the element for which the element is sticky | 
              stickyPosition
             | 
            String | 'top' | 
            Set the edge of the screen the item should stick to | 
Outputs
| Name | Type | Description | 
|---|---|---|
              active
             | 
            EventEmitter<void> | This event fires immediately when sticky start | 
              inactive
             | 
            EventEmitter<void> | This event fires immediately when sticky stop | 
        
            
            <div style="min-height: 500px" class="text-center" #boundary>
              <a
                id="sticky"
                type="button"
                href="https://mdbootstrap.com/docs/jquery/getting-started/download/"
                class="btn btn-outline-primary bg-white sticky"
                mdbSticky
                [stickyBoundary]="boundary"
                (active)="onActive()"
                >Download MDB
              </a>
            </div>
          
        
    
        
            
            import { Component } from '@angular/core';
            @Component({
              selector: 'app-root',
              templateUrl: './app.component.html',
              styleUrls: ['./app.component.scss'],
            })
            export class AppComponent {
              onActive() {
                console.log('active');
              }
            }