Search the Community
Showing results for tags 'animation'.
-
Hi guys! I would like to create a clients references/works section in the style of Apples Time Machine, but instead of having the explorer I would like to have a company logo and text that switches. Example animation:
-
Hello, everyone! I’m super new to GSAP and have been trying to recreate this animation for days. I’ve even tried using Claude and ChatGPT, but the results are still not close to what’s in the GIF. Here’s the reference site: https://icggallery.irisceramicagroup.com/en I’m really confused and could use some help. If I at least knew the name of this animation, I could probably find some example code and learn from it—but it seems like there’s nothing like it anywhere!
- 2 replies
-
- animation
- reveal animation
-
(and 2 more)
Tagged with:
-
I'm requested to create something like this but I find really complex to create it, the easy way is to just listen to mouse hover event over a element but as u can see and test in the website : https://epica.ru/ the hover effect is way complex then regular add addEventListener("mouseover" do u have any idea from to start ?
-
Which Technology is travelshift.com using for top banner animation?
Jasmine posted a topic in Banner Animation
Hi, I am a back end developer and have very least knowledge of JavaScript but I can understand code. I have been finding out whole day the code or logic used by https://travelshift.com/ they used to create top banner/slider which changes the slide/image by long click (about 1 second). I used chrome extension Wappalyzer and came to know that its using GSAP. I have been finding something similar but could not get any working code example. Can anyone please provide some similar example with code or any article link please. Also I want to know this animation name so I can google it better way. willing to get a response, thanks!- 12 replies
-
- animation
- transition
-
(and 2 more)
Tagged with:
-
Gsap animations relatives to the main container scale value (Storyline)
Grégory F. posted a topic in GSAP
Hi, I'm trying to use Gsap to make some advanced animation in Storyline, but I have a serious issue, because the course is resized depending the window size with css transformation : scale(). GSAP seams to ignore this rule because for example 200px is always 200px no matter the scale ratio. For now, I calculate the ratio and create the tweens depending of it (and recreate them on window.onresize), but there is an issue if you change the window size during the animation. Is there any possibilities to get the animation to be relatives to this scale ? https://360.articulate.com/review/content/9a23964a-1d79-4c1c-8e47-e8f036269c18/review Here an example of a tween: window["tween"+i] = gsap.fromTo(labels[i],{y:574*scale},{y:334*scale,ease:"power1.out", duration:0.25, paused: true,immediateRender:false, onComplete:twComplete,onCompleteParams:[i]}); Thanks a lot. -
I am trying to get help to create your own website Get GSAP button Hover animation effect. CleanShot 2025-07-28 at 20.42.06.mp4
-
ScrollTrigger Animation not animating the entire marker positions
Levin Riegner posted a topic in GSAP
I recently created a CodePen for parallax image sections, but I’ve noticed the animation finishes early. Even though it’s set to run from the top of the element to the bottom, and from the bottom of the screen to the top, it pauses during the last 100px. I can’t figure out why this is happening, and it’s driving me crazy. Am I missing something obvious? I assume it’s probably an easy fix.- 1 reply
-
- scrolltrigger
- urgent
-
(and 3 more)
Tagged with:
-
React/Next.js developer with experience with both 2D and 3D GSAP animated websites
Lamonier posted a topic in Jobs & Freelance
Hey! I am Lucas, a full-stack dev that has been working with GSAP and 3D graphics for almost four years now. My portfolio was featured on the GSAP official showcase back in December 2023 and I also submitted my latest project. You can check it out first-hand here: https://gilneas-bank.lucaslamonier.com/ In this website you can travel to different universes to learn more about a currency bot for Discord. Beyond front end I also do: back end: Node.js, Next.js databases: MySQL, MongoDB, Google Clooud's Datastore hard surface modelling and basic animations in Blender Unreal Engine bots for Discord and more! If you have a cool idea or an interesting project going, reach out! Maybe we can do something awesome together! [email protected] https://www.lucaslamonier.com/ -
Need help from someone to build this animation in Webflow: https://www.dropbox.com/scl/fi/8eazko292jfhk8xvvnlv4/EngineVideo.mp4?rlkey=64huqf2ka05yt1g4pitujc7io&e=2&dl=0
-
Hello Guys, I purchased the GSAP business for my organization to use the amazing motionpath plugin but it is giving me somewhat hard time to achieve my desired effect. What I am trying to achieve here is to distribute all the cards evenly on the curve path and then animate it from right to left. The cards will appear from left and end in when the last card is at the middle. please see the attached image of what I am trying to achieve. Any help will be much appreciated. Thank You
- 5 replies
-
- motionpath
- scrolltrigger
-
(and 1 more)
Tagged with:
-
Hey everyone, Seeking Guidance on a Text Animation Effect I'm working on a text animation where the text is revealed using "X" characters instead of traditional dots or a fade-in effect. Ideally, these "X" characters would be custom-rendered as SVGs. Current Challenges The animation feels too contained—I want it to have a more open and airy feel while keeping the text centered. I need to implement a hover effect where each "X" subtly shifts or moves to add an interactive touch. 🔗 Current Progress: CodePen Demo What I’ve Tried Particles.js seems promising, but I'm still figuring out how to integrate it effectively with text. Someone generously shared some starter code, which I’ve tweaked, but I’m still refining the animation. References & Inspiration Desired Hover Effect: Rosehip Example Similar Animation: Related CodePen Looking for Suggestions Has anyone tackled a similar effect before? Would GSAP or another library be better suited for this animation? Any insights or suggestions would be greatly appreciated! text animation figma.mp4
-
i want to recreate the on scroll effect of the https://www.aquest.it/it site. i have made the on scroll animations to move images vertically and text horizontally but i am not able to achieve that smooth bending effect.
-
Flickering and Fast-Scrolling Issues with GSAP ScrollTrigger on Safari for Footer Reveal Animation
mrriyadh posted a topic in GSAP
I’m working on a Next.js project with GSAP free version, where I’ve implemented a footer reveal animation inspired by the behavior on the Raxo website. The goal is to make the footer overlap the main content when a specific section (<div ref={titleRef}>) becomes visible at the bottom of the viewport. Here’s a brief description of my setup: The main content is pinned while scrolling. The footer slides up and overlaps the main content as the user scrolls to the end. I’m using GSAP ScrollTrigger for the animations and react for component structure. You can find my implementation on CodeSandbox: 👉 CodeSandbox Link Problems: Pinning Issue: The main content pinning is not smooth, especially during the transition when the footer starts overlapping the main content. The transition feels jittery and unstable. Footer Flickering: The footer flickers significantly on Safari during the reveal animation. While the flickering in Chrome is minimal and tolerable, it’s highly noticeable and disruptive on Safari (both macOS and iOS). White Area Beneath Footer on Fast Scrolling: During fast scrolling, the pinned footer (set to 100vh) moves slightly, and a white area becomes visible beneath the footer. It seems like the footer isn’t fully pinned to the bottom during these fast scroll events. Relevant Code: Here’s the simplified code structure. The complete implementation is available in the CodeSandbox Link: CustomLayout.js "use client"; import { useEffect, useRef } from "react"; import gsap from "gsap"; import { ScrollTrigger } from "gsap/ScrollTrigger"; gsap.registerPlugin(ScrollTrigger); export default function CustomLayout({ children }) { const titleRef = useRef(null); const containerRef = useRef(null); const mainContentRef = useRef(null); useEffect(() => { if (!titleRef.current || !containerRef.current || !mainContentRef.current) return; const title = titleRef.current; const container = containerRef.current; const mainContent = mainContentRef.current; gsap.set(container, { y: "100%", force3D: true, backfaceVisibility: "hidden" }); gsap.set(mainContent, { opacity: 1, scale: 1, force3D: true, backfaceVisibility: "hidden" }); const timeline = gsap.timeline() .to(mainContent, { opacity: 1, scale: 0.99, duration: 1, ease: "power3.out", }) .to(mainContent, { y: "-2%", duration: 0.5, ease: "power2.inOut", }); ScrollTrigger.create({ trigger: title, start: "bottom bottom", end: () => `+=${container.getBoundingClientRect().height}`, pin: mainContent, animation: timeline, pinSpacing: false, scrub: 1, onEnter: () => { gsap.to(container, { y: 0, duration: 1, ease: "power4.out", clearProps: "transform", }); }, onLeaveBack: () => { gsap.to(container, { y: "100%", duration: 1, ease: "power4.out", clearProps: "transform", }); }, }); ScrollTrigger.refresh(); return () => { ScrollTrigger.killAll(); }; }, []); return ( <div className="flex flex-col"> <header>Header Content</header> <main ref={mainContentRef} className="flex-grow bg-gray-100"> {children} <div ref={titleRef} className="h-[1px] opacity-0 bg-transparent flex items-center"> <p className="relative lg:absolute h-0 w-full bg-red-500 text-5xl font-bold text-white text-center"> Footer Title </p> </div> </main> <footer style={{ minHeight: "100vh", transform: "translateZ(0)", willChange: "transform", }} ref={containerRef} className="lg:relative bg-black text-white h-[calc(100vh+180px)] sm:h-auto z-[2] overflow-hidden" > Footer Content </footer> </div> ); } What I've Tried: Using force3D and backfaceVisibility: Added force3D: true and backfaceVisibility: hidden to both the footer and main content, but these didn’t resolve the flickering, pinning smoothness, or the white area issue. Tuning ScrollTrigger Configurations: Adjusted the start, end, and pinSpacing values for ScrollTrigger. Experimented with invalidateOnRefresh, fastScrollEnd, and easing functions without success. Testing with or Without Hardware Acceleration in CSS: Tried enabling/disabling transform: translateZ(0) and will-change: transform, but the flickering and white area issues persist. Adjusting Duration and Scrub: Changed the animation duration and scrub values in GSAP. This slightly improved the pinning but didn’t eliminate the white gap during fast scrolls. Environment: Browser: Major problem in Safari (macOS and iOS). GSAP Version: Free version ([email protected]). React: [email protected]. Framework: Next.js. Expected Behavior: The main content should pin smoothly during scrolling, and the footer should reveal without any flickering or jittering. Questions: Is the flickering in Safari a known issue, and are there any workarounds or best practices for smooth pinning and reveal animations? Why does fast scrolling cause the footer to shift, revealing the white area beneath it, and how can I prevent this behavior? Are there specific optimizations in GSAP ScrollTrigger to handle such issues on Safari? Any help or suggestions to fix these issues would be greatly appreciated! References: Similar footer behavior: https://raxo.co/ During fast scrolling, the footer should maintain its position without revealing any white area beneath it. -
I have attached a simple recreation of the bug that I'm facing, there is a much more complicated timeline so cannot shift to CSS only animation. As you can see in the demo, rotation works perfectly fine with gsap, but css transforms it, without considering the transform, is there any way I can "apply" the gsap transforms as CSS at the end of the timeline and just remove all the previous gsap effects? Anyways, would separate infinite gsap timeline be less efficient than an infinite CSS animation? cuz that would be a lot simpler to apply.
-
Hi, i have working in cargo collective website then i've added smooth scroll lenis.js and my requirement also one section use animation like card scrolling pin effect horizontally then i have implement gsap scrollTrigger but i have scrolling then smooth scroll lenis.js working perfectly but when enter the section they are hold card's not see only white background showing so please check it and help me.
-
Hi everyone, I am working on a project where I want to create a blob effect using GSAP. I have animated two blob SVGs using GSAP as you can see in codepen attached below, but I am still learning, and I don’t know how to do everything. I have tried everything, mask-image, -webkit-mask-image but I'm not getting the result that I want. My goal is to mask an image into the blobs, like in the image I have attached. Can anyone please help me with this? How can I use GSAP to mask an image into the blobs? Thank you in advance for your help and suggestions.
-
Hi, im trying to make a Scrolltrigger animation with a grid, that has tiles in it, the tiles should come in from the bottom staggered as they are now, to recreate the problem i made a stackblitz demo: https://stackblitz.com/edit/sveltejs-kit-template-default-tcgsr9?file=src%2Froutes%2Fstyles.css,src%2Froutes%2F%2Bpage.svelte,src%2Fcomponents%2FGridContainer.svelte so when you first start the server and scroll down, the grid is placed way too low (where it would usually start when animating the scrolltrigger) but it doesnt animate, upon reloading the page, it animates as expected. I put a green square below it to show the displacement at first, it happens every time, if i stop the server with Ctrl+C and start it up, on first load the grid is way too low and doesnt get animated. for the +page the Grid is inside two wrappers, the 2nd wrapper is there because of different components that i have in a column in between other components, i could solve it without the inner wrapper but im not sure if thats the problem, since ive tested it without it aswell... I attached 2 Screenshots of what it looks like for me, the 1st one is after reloading, what it should look like and the 2nd one is when i first start the server, when it doesnt animate with Scrolltrigger Any help or advice on whats wrong and how to fix it, is appreciated. Thanks in Advance!
-
Hi, I am trying to achieve a 3D cube with a parallax layer on top the follows when the cube rotates, just like this example i have stumbled apon (https://ilovemobile.nexd.com/c/4ct5X7ospn/creative/m7CpkDDHVYsxSRX4), I see its made with canvas, but im not too familiar with that and have since tried to give it a go with GSAP, but cant seem to get it right... Anyone get any tips for me? I have tried to create a CodePen with my current code (note images are not that well represented here, but i tried the best i could with placeholders.)
-
I wanna create a scrollTrigger animation like the one in https://figr.design/ website homepage; if you have any suggestions, that would be a great help for me.
- 1 reply
-
- scrolltrigger
- animation
- (and 4 more)
-
My question leans more to a THREE problem than to a GSAP problem, I suppose. But I know that there are some THREE enthusiasts on this forum, and given the fact that this is the best JS-related forum anyway, I dare to post my question hoping you don't disagree with me too much... Thank you in advance! I couldn't get my example working on CodePen, so I prepared one on Stackblitz, hope that's ok: https://stackblitz.com/edit/nuxt-starter-d1zs6g?file=components%2FPointCloud.vue In this example there are several PointClouds that can be loaded into a THREE canvas (in a Nuxt app). A deletePlyModel function takes care of unloading the current model before a new one is loaded: const deletePlyModel = () => { // If no model is currently loaded, do nothing if (!currentPlyModel) return; // Find the point cloud object in the scene const pointCloud = scene.getObjectByName(currentPlyModel); // If the point cloud object is found, dispose and remove it if (pointCloud) { pointCloud.geometry.dispose(); pointCloud.material.dispose(); scene.remove(pointCloud); // Clear the currentPlyModel reference currentPlyModel = null; } render(); // Update the scene }; Even though I am not sure if everything is correct with this dispose function, it works. What I would like to achieve is to implement some animation (fade out, scale, etc) on the points of the pointcloud before they are removed from the scene. (Much like lumalabs.ai does it, if anybody is familiar with that site.) But even with the help of AI I am not able to achieve a working result. First I tried this: const timeline = gsap.timeline(); timeline.to(pointCloud.material, { opacity: 0, duration: 1 }); Gemini.ai suggested some other solutions, the last one was to loop over the colors after converting them to their Float32 pendent: function hexToNormalizedRgb(hex) { const r = (hex >> 16) & 0xFF; const g = (hex >> 8) & 0xFF; const b = hex & 0xFF; return [r / 255, g / 255, b / 255]; } const deletePlyModel = () => { // [..] if (pointCloud) { const timeline = gsap.timeline(); const normalizedFadeColor = hexToNormalizedRgb(0xffffff); pointCloud.geometry.attributes.color.array.forEach((color, i) => { // Access the color components directly const colorElement = pointCloud.geometry.attributes.color.array[i]; timeline.to(colorElement, { x: normalizedFadeColor[0], y: normalizedFadeColor[1], z: normalizedFadeColor[2], duration: 1, delay: i / pointCloud.geometry.attributes.color.count * 0.5 }); }); } } This resulted in GSAP target 0 not found. What would be the proper way to apply a fadeout or a scale function (staggered) to those points?
- 3 replies
-
- three
- pointcloud
-
(and 1 more)
Tagged with:
-
First of all sorry, but I can't provide a codepen, I will try to describe the problem the best I can. Basically I have this type of structure: <div class='middle'> <div class='canvas-holder'> <!-- [Three.js Canvas] --> </div> </div> This is the CSS each of this element have: .middle { position: relative; margin-top: 7rem; } .canvas-holder { position: absolute; height: 100%; // [Three.js Canvas] canvas { position: sticky; top: 0; } } The Three.js canvas has a certain size (window.innerWidth, window.innerHeight), with GSAP I wanted to animate the position of a model inside the Three.js canvas. I wanted to move up the model by 5 when I scroll, so I wrote this: // peeler_model is the model I want to move gsap.to(peeler_model.position, { y: 5, scrollTrigger: { target: middle_div, // I wanted to take the div as a reference point for the markers start: "top top", end: "bottom bottom", scrub: true, markers: true } }) Now with this what I thought would've happened is that by setting the target as the middle_div the first top at the start would have went at the top of the middle_div like this: But instead what happened was that START went at the top of the body. I don't know how to really fix it, I used percentages instead of top and bottom to fix it a bit, but it would be really helpful if top would go at the top of the target like it always did for me. The only thing I can think of of why this is happening is because the canvas has a parent with absolute positioning, but that's really strange. Anyways thanks in advance for the help.
- 2 replies
-
- scrolltrigger
- scroll
- (and 12 more)
-
Hello everyone, I need help with my WordPress site on Elementor, specifically with animation using GSAP. What I'm trying to achieve with GSAP in WordPress Elementor is this: Imagine there's a first section with a video background and text overlay. As I scroll down, another section appears while the first section remains fixed in the viewport. As I continue scrolling, the second section gradually reveals itself. The first section's video remains visible, while the second section's background fills the screen. In the middle of the second section, there's a logo that is masked/clipped, allowing you to see through to the video of the first section. please see the video example from apple website https://www.apple.com/sg/ipad-pro/ or can visit this link to see the exact video https://filebin.net/pw5ljr9fqsm1aupr
- 2 replies
-
- scrolltrigger
- animation
-
(and 2 more)
Tagged with:
-
I want to create CS2 case opening animation in my Nuxt 3 project using GSAP plugin. I am using gsap in my project for the first time, so I am facing many difficulties. The result I want to achieve is to make the case opening animation like in cs2. However, my result is far from that. I am facing these problems. I can't create a loop with gsap. Transitions between animations are not smooth they should move as if they were a single animation. I have shared the code in the codepen url but I couldn't get the Vue code to run in the codepen. Currently, the only working part of the code is that the indicator stops on the earned item when the animation ends.