summaryrefslogtreecommitdiffstats
path: root/assets/js/scroll-reveal.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/scroll-reveal.js')
-rw-r--r--assets/js/scroll-reveal.js26
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);
+ });
+}