vue-use-scroll-size-observer
| Install | |
|---|---|
npm install vue-use-scroll-size-observer |
|
| Latest Version: | 1.0.4 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Feb 25, 2024 |
| Links: | GitHub · npm |
useScrollSizeObserver
useScrollSizeObserver is a lightweight JavaScript library that provides a simple and efficient way to observe changes to elements' scrollWidth and scrollHeight properties. It offers a similar API to ResizeObserver.
Features
- Easy Integration: Simple to integrate into existing projects with minimal setup.
- Efficient Observations: Utilizes modern browser APIs to efficiently track changes without impacting performance.
- Cross-Browser Compatibility: Compatible with major modern browsers, ensuring consistent behavior across different environments.
- TypeScript Support: Provides full support for TypeScript, enabling type-checking and enhanced development experience.
Installation
You can install ScrollSizeObserver via npm:
npm install vue-use-scroll-size-observer
Usage Vue 3 composable (example)
import { useScrollSizeObserver } from "vue-use-scroll-size-observer";
// Reactive!!!
const { previousScrollHeight, scrollHeight } = useScrollSizeObserver(bottomSheetCardContentRef);
watchPostEffect(() => {
if (!!props.autoRecalcHeight && !!scrollHeight.value && previousScrollHeight !== scrollHeight) {
// recalcHeight();
}
});
Usage ScrollSizeObserver
import { ScrollSizeObserver } from "vue-use-scroll-size-observer";
// Just like `ResizeObserver`
const observer = new ScrollSizeObserver((entries, observer) => {
entries.forEach((entry) => {
console.log('Target element:', entry.target)
console.log('New scrollWidth:', entry.scrollWidth)
console.log('New scrollHeight:', entry.scrollHeight)
console.log('Previous scrollWidth:', entry.previousScrollWidth)
console.log('Previous scrollHeight:', entry.previousScrollHeight)
})
})
// Observe an element
observer.observe(elementToObserve)
// Observe only `scrollHeight`
observer.observe(elementToObserve, { scrollWidth: false })
// Unobserve an element
observer.unobserve(elementToUnobserve)
// Unobserve all observed elements
observer.disconnect()
API
-
ScrollSizeObserver(callback: ScrollSizeObserverCallback)Creates a new
ScrollSizeObserverinstance.callback: A function called whenever an observed scroll size change occurs.
-
observe(target: Element, options?: ScrollSizeObserverOptions): voidStarts observing the specified
Element.target: A reference to theElementto be observed.options: An options object allowing you to set options for the observation.
-
unobserve(target: Element): voidEnds the observation of a specified
Element.target: A reference to theElementto be unobserved.
-
disconnect(): voidUnobserves all observed
Elementtargets.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Fork the repository, make your changes, and submit a pull request. Thank you for helping improve our project!
Support
For any questions, issues, or feature requests, please open an issue.
Related Packages
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 1.0.4 | ^3.4.19 | MIT | |
| 1.0.3 | ^3.4.19 | MIT | |
| 1.0.2 | ^3.4.19 | MIT | |
| 1.0.1 | ^3.4.19 | MIT | |
| 1.0.0 | ^3.4.19 | MIT |