Scroll Status
React Bootstrap 5 Scroll Status plugin
Scroll Status plugin creates progress bar indicating page or component scroll level.
Scroll status plugin built with the latest Bootstrap 5. Creates a progress bar indicating page or component scroll level.Note: Read the API tab to find all available options and advanced customization
Basic example
Create default Scroll Status by adding <MDBScrollStatus>
with containerRef
pro addressing a container
element with scroll option.
Some content here
import React, { useRef } from 'react';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference}/>
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Global example
Create element indicating global page scroll level.
import React from 'react'
import { MDBScrollStatus } from 'mdb-react-scroll-status'
export default function App() {
return (
<MDBScrollStatus global />
)
}
Styling
Color
Change default color of Scroll Status bar with
color
prop.
Some content here
import React, { useRef } from 'react';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference} color="green" />
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Position
Change default vertical position of Scroll Status with
offset
prop.
Some content here
import React, { useRef } from 'react';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference} offset={10} />
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Height
Change default height of Scroll Status bar with
height
prop.
Some content here
import React, { useRef } from 'react';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference} height="20px" />
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Trigger
One-time open on modal example
Fires onScrollTarget
function immediately when the scroll
value is exceeded. Below is an example using a modal.
Some content here
import React, { useRef, useState } from 'react';
import {
MDBModal,
MDBModalDialog,
MDBModalContent,
MDBModalHeader,
MDBModalTitle,
MDBModalBody,
MDBModalFooter,
MDBBtn,
} from 'mdb-react-ui-kit';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const [toggleShowModal, setToggleShowModal] = useState(false);
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<MDBModal open={toggleShowModal} onClose={() => setToggleShowModal(false)} tabIndex={-1}>
<MDBModalDialog>
<MDBModalContent>
<MDBModalHeader>
<MDBModalTitle>Scroll Status</MDBModalTitle>
<MDBBtn className='btn-close' color='none' onClick={() => setToggleShowModal(false)}></MDBBtn>
</MDBModalHeader>
<MDBModalBody>Showing scroll status on 50%</MDBModalBody>
<MDBModalFooter>
<MDBBtn color='secondary' onClick={() => setToggleShowModal(false)}>
Close
</MDBBtn>
<MDBBtn>Save changes</MDBBtn>
</MDBModalFooter>
</MDBModalContent>
</MDBModalDialog>
</MDBModal>
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference} scroll={50} onScrollTarget={()=> setToggleShowModal(true)} />
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Multiple open on modal example
To trigger a passed function multiple times, add triggerOnce={false}
prop.
Some content here
import React, { useRef, useState } from 'react';
import {
MDBModal,
MDBModalDialog,
MDBModalContent,
MDBModalHeader,
MDBModalTitle,
MDBModalBody,
MDBModalFooter,
MDBBtn,
} from 'mdb-react-ui-kit';
import { MDBScrollStatus } from 'mdb-react-scroll-status';
export default function App() {
const [toggleShowModal, setToggleShowModal] = useState(false);
const exampleReference = useRef(null);
return (
<section class="mb-4 w-100">
<MDBModal open={toggleShowModal} onClose={() => setToggleShowModal(false)} tabIndex={-1}>
<MDBModalDialog>
<MDBModalContent>
<MDBModalHeader>
<MDBModalTitle>Scroll Status</MDBModalTitle>
<MDBBtn className='btn-close' color='none' onClick={() => setToggleShowModal(false)}></MDBBtn>
</MDBModalHeader>
<MDBModalBody>Showing scroll status on 50%</MDBModalBody>
<MDBModalFooter>
<MDBBtn color='secondary' onClick={() => setToggleShowModal(false)}>
Close
</MDBBtn>
<MDBBtn>Save changes</MDBBtn>
</MDBModalFooter>
</MDBModalContent>
</MDBModalDialog>
</MDBModal>
<div class="border" style="height: 100px; overflow-y: auto;" ref={exampleReference}>
<MDBScrollStatus containerRef={exampleReference} scroll={50} onScrollTarget={()=> setToggleShowModal(true)} triggerOnce={false}/>
<div style="height: 400px; width: 100%;">
<p class="mt-2" style="text-align: center;">Some content here</p>
</div>
</div>
</section>
)
}
Scroll Status - API
Import
import { MDBScrollStatus } from 'mdb-react-scroll-status';
Properties
MDBScrollStatus
Name | Type | Default | Description | Example |
---|---|---|---|---|
className
|
string | '' |
Add custom class to MDBScrollStatus |
<MDBScrollStatus className="class" />
|
color
|
string | '#1266F1' |
Defines color of the progress bar. |
<MDBScrollStatus color='#000' />
|
containerRef
|
React.MutableRefObject<any> |
|
A reference to the object whose scroll value will be shown. |
<MDBScrollStatus containerRef={someRef} />
|
global
|
boolean | false |
If value is true, it will show global scroll (window scroll). |
<MDBScrollStatus global />
|
height
|
string | 10px |
Defines height of the progress bar. |
<MDBScrollStatus height='20px' />
|
offset
|
number | 0 |
Defines offset of the progress bar. |
<MDBScrollStatus offset={10} />
|
scroll
|
number | - |
Defines percentage value which crossing will trigger onScrollTarget event. |
<MDBScrollStatus scroll={50} />
|
triggerOnce
|
boolean | true |
If value is true, it will trigger onScrollTarget just once. |
<MDBScrollStatus triggerOnce={false} />
|
Events
Name | Type | Description |
---|---|---|
onScroll
|
(value: any) => any | Returns the current scroll percentage. |
onScrollTarget
|
() => any | Fires immediately when the scroll value is exceeded |