Smooth scroll
Bootstrap 5 Smooth scroll
Bootstrap smooth scroll is an animated movement from a trigger β such as button, link or any other clickable element β to another place of the same page.
Note: Read the API tab to find all available options and advanced customization
Basic example
Click on the links below to see the live example
To achieve a Smooth Scroll effect, add the
data-mdb-smooth-scroll attribute to your link.
Here it is #section-1
Custom container
By adding data-mdb-container attribute you can set container in which you want
smooth scroll.
Here it is #section-2
Custom offset
By adding data-mdb-offset attribute you can set custom offset from element.
Here it is #section-3
Custom duration
By adding data-mdb-duration attribute you can set custom duration of smooth
scroll.
Here it is #section-4
Custom easing
By adding data-mdb-easing you can set other scroll's motion option
Here it is #section-5/p>
Container away from viewport
When you put container with overflow: scroll away from viewport link firstly will
scroll to this container then it will scroll container.
Section to scroll is below:
Here it is #section-6/p>
Smooth scroll - API
Usage
Via data attributes
<a
href="#section-1"
data-mdb-smooth-scroll="smooth-scroll"
data-mdb-container="#container-1"
>Smooth Scroll</a
>
Via JavaScript
const smoothScroll = new mdb.SmoothScroll(document.getElementById('smooth-scroll'), {
offset: ..., easing: ..., });
Options
| Name | Type | Default | Description |
|---|---|---|---|
container
|
String | 'body' |
Changes container of scrolling element with
overflow: scroll;.
|
duration
|
Number | '500' |
Changes duration of smooth scroll. |
easing |
String | 'linear' |
Changes motion type of smooth scroll, available easings: 'linear', 'easeInQuad', 'easeInCubic', 'easeInQuart', 'easeInQuint', 'easeInOutQuad' 'easeInOutCubic', 'easeInOutQuart', 'easeInOutQuint', 'easeOutQuad', 'easeOutCubic', 'easeOutQuart', 'easeOutQuint' . |
offset |
Number | '0' |
Changes offset from element |
Methods
const instance = mdb.SmoothScroll.getInstance(document.getElementById('smooth-scroll'));
setTimeout(() => { instance.cancelScroll(); }, 100);
| Name | Description | Example |
|---|---|---|
cancelScroll
|
Manually cancels smooth scroll |
smoothScroll.cancelScroll();
|
dispose
|
Manually disposes an instance |
smoothScroll.dispose();
|
getInstance
|
Static method which allows you to get the smooth scroll instance associated to a DOM element. |
SmoothScroll.getInstance(smoothScrollEl)
|
Events
const smoothScroll = document.getElementById('smooth-scroll');
smoothScroll.addEventListener('scrollEnd.mdb.smoothScroll', () => { // do something });
| Name | Description |
|---|---|
scrollCancel.mdb.smoothScroll
|
This event fires immediately after canceling smooth scrolling. |
scrollEnd.mdb.smoothScroll
|
This event fires immediately when the smooth scroll ends. |
scrollStart.mdb.smoothScroll
|
This event fires immediately when the smooth scroll is starting. |
Import
import { SmoothScroll } from 'mdb-ui-kit';