diff options
Diffstat (limited to 'assets/js/scroll-reveal.js')
| -rw-r--r-- | assets/js/scroll-reveal.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/assets/js/scroll-reveal.js b/assets/js/scroll-reveal.js new file mode 100644 index 0000000..ab099c0 --- /dev/null +++ b/assets/js/scroll-reveal.js @@ -0,0 +1,26 @@ +/** + * scroll-reveal.js + * IntersectionObserver for revealing elements on scroll + */ + +export function initScrollReveal() { + 'use strict'; + + const revealElements = document.querySelectorAll('.reveal'); + if (!revealElements.length) return; + + const observer = new IntersectionObserver((entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add('revealed'); + observer.unobserve(entry.target); + } + }); + }, { + threshold: 0.1, + }); + + revealElements.forEach((el) => { + observer.observe(el); + }); +} |
