← ClaudeAtlas

animation-on-scrolllisted

Create an on-scroll animation trigger using IntersectionObserver with Tailwind-friendly animation classes and keyframes. Use when asked for scroll-reveal, animate-on-scroll, or sequencing element animations when they enter the viewport.
sahiltolani30/Interior-designer-Website-Template · ★ 0 · Web & Frontend · score 51
Install: claude install-skill sahiltolani30/Interior-designer-Website-Template
# Animation On Scroll Skill ## Workflow 1. Confirm animation style, timing, and whether animations should run once or repeat. 2. Provide the keyframes + JS observer snippet and the exact Tailwind class to apply. 3. Offer focused tweaks only (threshold, rootMargin, duration, delay, transform/blur values). ## Usage checklist - Insert the JS snippet in the `<head>` after the keyframes. - Add the animation class and `animate-on-scroll` to elements. - Ensure your keyframes name matches the Tailwind animation reference. ## IntersectionObserver trigger ```html <script> /* Sequence animation on scroll when visible. Requires Animation Keyframe. Usage: 1) Insert this code in the <head> along with the Animation Keyframe code. 2) Add to Tailwind Classes: [animation:animationIn_0.8s_ease-out_0.1s_both] animate-on-scroll */ (function () { // Inject CSS for paused/running states const style = document.createElement("style"); style.textContent = ` /* Default: paused */ .animate-on-scroll { animation-play-state: paused !important; } /* Activated by JS */ .animate-on-scroll.animate { animation-play-state: running !important; } `; document.head.appendChild(style); const once = true; if (!window.__inViewIO) { window.__inViewIO = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("animate"); if (once)