UNPKG

anim8-core

Version:

Custom JavaScript animation library with modular effects

25 lines (19 loc) 679 B
// src/effects/scrollReveal.js import { resolveElement } from '../utils/resolveElement.js'; export const scrollReveal = (elementOrSelector, options = {}) => { const elements = resolveElement(elementOrSelector, { all: true }); if (!elements.length) return; const observer = new IntersectionObserver((entries, observerInstance) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("animate-scrollReveal"); if (options.once !== false) { observerInstance.unobserve(entry.target); } } }); }); elements.forEach((el) => { observer.observe(el); }); };