<?xml version="1.0"?>
<rss version="2.0"><channel><title>Banner Animation Latest Topics</title><link>https://gsap.com/community/forums/forum/12-banner-animation/</link><description>Banner Animation Latest Topics</description><language>en</language><item><title>Visibility or display animation</title><link>https://gsap.com/community/forums/topic/45434-visibility-or-display-animation/</link><description><![CDATA[<p>
	I am trying to create an animation where things are not visible, then "pop" into existence and then move into final position.
</p>

<p>
	So I am using something like this:
</p>

<p>
	 
</p>

<p>
	<code>const wordAnimationSetup = { xPercent: 5, autoAlpha: 0};//for this I use gsap.set(elements, wordAnimationSetup);<br />
	const wordAnimationIn = {xPercent: 0, stagger: 0.1, duration: 0.15, ease: "circ.out", autoAlpha: 1};</code>
</p>

<p>
	<code>const wordAnimationOut = {xPercent: -5, stagger: 0.1, duration: 0.15, ease: "circ.in", autoAlpha: 0};<br />
	//then I move things in and out using tl.to(elements, wordAnimationIn, "+=0.5"); </code>
</p>

<p>
	 
</p>

<p>
	Now the <em><strong>problem</strong></em> is that there is a small fade whenever things appear.  I want them to show up THEN slide into position.
</p>

<p>
	I guess I could use <code>tl.set(elements, {autoAlpha: 1}</code> but it does not work with staggers because ALL elements show up and then 1 by 1 slide into position.
</p>

<p>
	I basically want to stagger the display/visibility and then do the animation per element.
</p>

<p>
	Any ideas?
</p>
]]></description><guid isPermaLink="false">45434</guid><pubDate>Thu, 30 Apr 2026 16:17:30 +0000</pubDate></item><item><title>Responsive Scroll Animation</title><link>https://gsap.com/community/forums/topic/45438-responsive-scroll-animation/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	 
</p>

<p>
	I created an animation where the image shrinks and text comes in from the left, right, and bottom. However, when the text length changes, they don’t come in from the left and right at the same time. I have to manually adjust the left/right values.
</p>

<p>
	 
</p>

<p>
	Is there a way to make the text come in from all sides simultaneously regardless of its length? Also, how can I make this animation responsive? Right now, when the text scales down, there are some issues like elements overlapping.<br />
	 
</p>

<p>
	 
</p>

<p>
	<a href="https://prnt.sc/6uwGWcj7p8sd" rel="external nofollow">Image</a>
</p>

<p>
	 
</p>




<p data-height="450" data-slug-hash="ZYBYwRj" data-user="ijgxmufp-the-sans" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/ijgxmufp-the-sans/pen/ZYBYwRj'>ZYBYwRj</a> by ijgxmufp-the-sans (<a href='https://codepen.io/ijgxmufp-the-sans'>@ijgxmufp-the-sans</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45438</guid><pubDate>Sat, 02 May 2026 12:10:13 +0000</pubDate></item><item><title>Gradient Color Animation</title><link>https://gsap.com/community/forums/topic/45437-gradient-color-animation/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	 
</p>

<p>
	How we can create a smooth animated color gradient transition between one section and another like this?
</p>

<p>
	 
</p>

<div class="ipsEmbeddedVideo" contenteditable="false">
	<div>
		<iframe allowfullscreen="" frameborder="0" height="113" title="Gradient Color Anim" width="200" data-embed-src="https://www.youtube-nocookie.com/embed/Lu0OH3vnsKo?feature=oembed"></iframe>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">45437</guid><pubDate>Fri, 01 May 2026 15:07:15 +0000</pubDate></item><item><title>Linear gradient loop</title><link>https://gsap.com/community/forums/topic/45415-linear-gradient-loop/</link><description><![CDATA[<p>
	Hi,<br />
	I'm trying to make an infinite gradient loop, should fill the entire background for any format.<br />
	There are some parametres: 4 colours, gradient angle, animation speed and animation mode (yoyo or loop) 
</p>

<p>
	yoyo works well but I can't make the loop infinite
</p>

<p>
	 
</p>

<p>
	Any advice ?<br />
	 
</p>




<p data-height="450" data-slug-hash="raMReMG" data-user="fripi" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/fripi/pen/raMReMG'>raMReMG</a> by fripi (<a href='https://codepen.io/fripi'>@fripi</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45415</guid><pubDate>Fri, 17 Apr 2026 09:23:36 +0000</pubDate></item><item><title>Banner Wave like animation</title><link>https://gsap.com/community/forums/topic/45313-banner-wave-like-animation/</link><description><![CDATA[<p>
	Hi Everyone,<br />
	Urgent!<br />
	<br />
	I want to create banner just like it did on <a href="https://www.chooseplasticfreewipes.com/" rel="external nofollow">https://www.chooseplasticfreewipes.com/</a><br />
	Wave like banner that shows waves infinite when cursor enters it behaves with the cursor direction. Can anyone help me to create and if you have any demo like this using GSAP you can share with me. It would be great for me, <br />
	<br />
	Thanks in advance!<br />
	Hamza Azeem
</p>
]]></description><guid isPermaLink="false">45313</guid><pubDate>Fri, 23 Jan 2026 11:29:56 +0000</pubDate></item><item><title>SplitText breaks inside FlashTalking richload</title><link>https://gsap.com/community/forums/topic/45294-splittext-breaks-inside-flashtalking-richload/</link><description><![CDATA[<p>
	Reaching out to see if anyone has encountered issues with SplitText breaking when it's used inside a FlashTalking/Innovid richload. 
</p>

<p>
	 
</p>

<p>
	My team's encountered a strange issue with SplitText unable to manipulate the DOM when the banner. The banner animates as expected when viewed on it's own, but once it's loaded into an &lt;ft-richload&gt; element I see <span style="background-color:#413c26;color:#e3e3e3;font-size:11px;text-align:right;"> "</span><span style="background-color:#413c26;color:#fdf3aa;font-size:11px;">GSAP target not found." </span> errors in the console and no text animation. The fonts are preloaded using webfont.js. I assume this is a scope issue between the ft-richload and SplitText. 
</p>

<p>
	I've attached a demo.
</p>
<p>
<a class="ipsAttachLink" href="https://gsap.com/community/applications/core/interface/file/attachment.php?id=14796&amp;key=a85ff0b7fe741a32d9c40adabb7e892b" data-fileExt='zip' data-fileid='14796' data-filekey='a85ff0b7fe741a32d9c40adabb7e892b'>SpTxt_Troubleshooting.zip</a></p>]]></description><guid isPermaLink="false">45294</guid><pubDate>Tue, 13 Jan 2026 22:40:47 +0000</pubDate></item><item><title>Adways Weborama CDN</title><link>https://gsap.com/community/forums/topic/45254-adways-weborama-cdn/</link><description><![CDATA[<p>
	I don't know if this platform is used everywhere, ut in BeNeLux it is.
</p>

<p>
	So I just received confirmation that they have put 3.14.1 on their CDN:
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pln">https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/CSSRulePlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/CustomBounce.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/CustomEase.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/CustomWiggle.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/Draggable.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/DrawSVGPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/EasePack.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/EaselPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/Flip.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/GSDevTools.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/InertiaPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/MorphSVGPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/MotionPathHelper.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/MotionPathPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/Observer.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/Physics2DPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/PhysicsPropsPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/PixiPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/ScrambleTextPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/ScrollSmoother.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/ScrollToPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/ScrollTrigger.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/SplitText.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/TextPlugin.min.js</span><span class="pln">
https</span><span class="pun">:</span><span class="com">//media.adrcdn.com/scripts/external/greensock/3.14.1/gsap.min.js</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">45254</guid><pubDate>Fri, 12 Dec 2025 08:41:14 +0000</pubDate></item><item><title>Recreating Zentry&#x2019;s Interactive Mask Animation with GSAP</title><link>https://gsap.com/community/forums/topic/45211-recreating-zentry%E2%80%99s-interactive-mask-animation-with-gsap/</link><description><![CDATA[<p>
	I'm trying to recreate the animation from <strong>zentry.com</strong>, specifically the effect where an <strong>SVG clipPath deforms dynamically with the mouse movement</strong>. I already have GSAP working for rotations and 3D interactions, but I can’t find a clear way to <strong>animate the clipPath by updating the path’s coordinates (M, L, Q, etc.) in real time</strong>.
</p>

<p>
	What I need is guidance on how to <strong>rebuild and replace the SVG path points using GSAP’s <code>attr: { d: "" }</code></strong> to achieve that smooth, responsive deformation like Zentry’s effect. Any examples or references would be greatly appreciated.
</p>
]]></description><guid isPermaLink="false">45211</guid><pubDate>Sat, 22 Nov 2025 18:45:05 +0000</pubDate></item><item><title>onScroll section stack and fill color then section release.</title><link>https://gsap.com/community/forums/topic/45204-onscroll-section-stack-and-fill-color-then-section-release/</link><description><![CDATA[<p>
	I need to create a scroll-triggered animation where the section sticks, features activate sequentially, and then releases.<br />
	<br />
	before scroll-triggered:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://gsap.com/community/uploads/monthly_2025_11/image.png.e8b03ea829e0f3ae245701ad74519c1a.png" data-fileid="14738" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="14738" data-ratio="69.30" width="1000" alt="image.thumb.png.100df6909ca7f31c3fb24a5d02011ed9.png" src="https://gsap.com/community/uploads/monthly_2025_11/image.thumb.png.100df6909ca7f31c3fb24a5d02011ed9.png" /><br />
	after </a>scroll-triggered:<br />
	<a class="ipsAttachLink ipsAttachLink_image" href="https://gsap.com/community/uploads/monthly_2025_11/image.png.92f3aac9dbfa581168921c4e1eca962f.png" data-fileid="14739" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="14739" data-ratio="66.20" width="1000" alt="image.thumb.png.2d9e13a2ff4c30af89abde1196915c91.png" src="https://gsap.com/community/uploads/monthly_2025_11/image.thumb.png.2d9e13a2ff4c30af89abde1196915c91.png" /></a><br />
	Link: <a href="https://codesandbox.io/p/devbox/8zwqsw" rel="external nofollow">https://codesandbox.io/p/devbox/8zwqsw</a>
</p>
]]></description><guid isPermaLink="false">45204</guid><pubDate>Wed, 19 Nov 2025 11:06:16 +0000</pubDate></item><item><title>Change element color exactly when a rotating gradient line passes over it</title><link>https://gsap.com/community/forums/topic/45087-change-element-color-exactly-when-a-rotating-gradient-line-passes-over-it/</link><description><![CDATA[<p>
	Hi everyone! I’m new to GSAP and could use a hand.
</p>

<p>
	 
</p>

<p>
	I’m animating an SVG where a few arc segments rotate around a center (think accent “glow” lines). I have several dots placed on the same circle, and I’d like each dot to change fill exactly while the line passes over it. Ideally, the dot’s color matches (or approximates) the line’s stroke gradient at the point of intersection (like changes from purple to white). Is this possible with GSAP? Maybe you can give me some hints about it? <span class="ipsEmoji">🙏</span> 
</p>

<p>
	 
</p>

<p>
	Huge thanks in advance for any guidance or examples! <span class="ipsEmoji">🫂</span>
</p>




<p data-height="450" data-slug-hash="GgorOmp" data-user="Anka_shhhh" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/Anka_shhhh/pen/GgorOmp'>GgorOmp</a> by Anka_shhhh (<a href='https://codepen.io/Anka_shhhh'>@Anka_shhhh</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45087</guid><pubDate>Sun, 05 Oct 2025 18:10:18 +0000</pubDate></item><item><title>Click tags - Flashtalking</title><link>https://gsap.com/community/forums/topic/14549-click-tags-flashtalking/</link><description><![CDATA[
<p>I need a quick crash course in clickTags! I have some specs from a client and it seems they will be using Flash talking.</p>
<p> </p>
<p><span style="color:rgb(51,51,51);font-family:SkyTextMedium;font-size:14pt;">Click-through Tag Requirements</span></p>
<div><div><div>
<p><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">The HTML file must include a meta tag indicating which element in the ad triggers the clickthrough.<br />• Specify the click-through element with a ‘click.through’ meta </span></p>
<p><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">tag. Insert your HTML file’s clickable element ID where it says myClickableElementId:</span><br /><span style="font-size:12pt;font-family:SkyTextMedium;color:rgb(20%,20%,20%);">Format: </span><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">&lt;meta name=”click.through” content=”myClickableElementId” Ensure the HTML file contains an element with the specified ID. </span></p>
<p><span style="font-size:12pt;font-family:SkyTextMedium;color:rgb(20%,20%,20%);">Example: </span><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">&lt;img id=”myClickableElementId” src=”button.png” /&gt; Do </span></p>
<p><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">not hardcode the click through URL in your HTML file.<br />• Do not add your own click tracking events to the click-through </span></p>
<p><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">element as this will conflict with Flashtalking click tracking.<br />• If you would like to track clicks in another system, please send tags </span></p>
<p><span style="font-size:12pt;font-family:SkyText;color:rgb(40%,40%,40%);">to Sky Media along with your creative. </span></p>
<p> </p>
</div></div></div>
<div> </div>
<div> </div>
<div>As my banner stands I just have a standard clickTag set up which seems to work. Do I need to change anything according to their specs?</div>
<div> </div>
<div> </div>
<div>This is my current set up:</div>
<div> </div>
<div>
<pre class="ipsCode prettyprint">
a#myAdLink {
display: inline-block;
background-color: #000000;
}

&lt;a id="myAdLink" href="javascript:window.open(window.clickTag)"&gt;

var clickTag = "http://www.google.com"; 
</pre>
<p>It seems they are suggesting I add this as a meta tag at the top?</p>
<pre class="ipsCode prettyprint">
&lt;meta name="click.through" content="cta_1"&gt;
</pre>
</div>
]]></description><guid isPermaLink="false">14549</guid><pubDate>Fri, 10 Jun 2016 10:21:39 +0000</pubDate></item><item><title>Which Technology is travelshift.com using for top banner animation?</title><link>https://gsap.com/community/forums/topic/25883-which-technology-is-travelshiftcom-using-for-top-banner-animation/</link><description><![CDATA[<p>
	Hi,<br />
	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 <a href="https://travelshift.com/" rel="external nofollow">https://travelshift.com/</a> they used to create top banner/slider which changes the slide/image by long click (about 1 second). I used chrome extension <a href="https://chrome.google.com/webstore/detail/wappalyzer/gppongmhjkpfnbhagpmjfkannfbllamg?hl=en" rel="external nofollow">Wappalyzer</a> and came to know that its using GSAP. I have been finding something similar but could not get any working code example.<br />
	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.<br /><br />
	willing to get a response, thanks!
</p>
<p><a href="https://gsap.com/community/uploads/monthly_2020_10/2020-10-14_16h36_51.jpg.e5a731836fa41907188f3906935e8e60.jpg" class="ipsAttachLink ipsAttachLink_image"><img data-fileid="4711" src="https://gsap.com/community/uploads/monthly_2020_10/2020-10-14_16h36_51.thumb.jpg.914b098571460bb56270407c91258691.jpg" data-ratio="45.8" width="1000" class="ipsImage ipsImage_thumbnailed" alt="2020-10-14_16h36_51.jpg"></a></p>]]></description><guid isPermaLink="false">25883</guid><pubDate>Thu, 15 Oct 2020 05:04:46 +0000</pubDate></item><item><title>GSAP Animation Lagging on iPhones and iPads but Smooth on Android and Laptops</title><link>https://gsap.com/community/forums/topic/44749-gsap-animation-lagging-on-iphones-and-ipads-but-smooth-on-android-and-laptops/</link><description><![CDATA[<p>
	Hi GSAP Community,
</p>

<p>
	I’ve built a GSAP animation that works perfectly on Android devices and all laptops (Windows/macOS), but I’m experiencing noticeable lag when viewing it on iPhones and iPads.
</p>

<p>
	I've tried common optimization tips like <code>will-change</code>, reducing repaints, and simplifying the animation logic, but the issue persists on iPhones and iPads.
</p>

<p>
	Has anyone else faced this issue or have suggestions on how to optimize GSAP animations specifically for iOS performance? Any guidance would be greatly appreciated!
</p>

<p>
	Thanks in advance!
</p>

<p>
	— Tirthesh Motiwala
</p>
]]></description><guid isPermaLink="false">44749</guid><pubDate>Wed, 25 Jun 2025 17:17:36 +0000</pubDate></item><item><title>Java Fullstack Portfolios</title><link>https://gsap.com/community/forums/topic/44947-java-fullstack-portfolios/</link><description><![CDATA[<p>
	irequired a portfolio for myself as a java fullstack developer
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">44947</guid><pubDate>Wed, 20 Aug 2025 14:06:20 +0000</pubDate></item><item><title>In Nesting timeline, how to make the start of one timeline coincide with a stage in another timeline?</title><link>https://gsap.com/community/forums/topic/44899-in-nesting-timeline-how-to-make-the-start-of-one-timeline-coincide-with-a-stage-in-another-timeline/</link><description><![CDATA[<p>
	I want the overlay timeline to start animating from the text2 label. That is, when the text-2 animation starts, the overlay timeline will start running.
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pln">gsap</span><span class="pun">.</span><span class="pln">registerPlugin</span><span class="pun">(</span><span class="typ">ScrollTrigger</span><span class="pun">)</span><span class="pln">
    </span><span class="kwd">const</span><span class="pln"> tl </span><span class="pun">=</span><span class="pln"> gsap</span><span class="pun">.</span><span class="pln">timeline</span><span class="pun">({</span><span class="pln">
      scrollTrigger</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        trigger</span><span class="pun">:</span><span class="pln"> </span><span class="str">'.section'</span><span class="pun">,</span><span class="pln">
        markers</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
        pin</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln"> </span><span class="com">// pin the trigger element while active</span><span class="pln">
        start</span><span class="pun">:</span><span class="pln"> </span><span class="str">'top top'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// when the top of the trigger hits the top of the viewport</span><span class="pln">
        </span><span class="kwd">end</span><span class="pun">:</span><span class="pln"> </span><span class="str">'bottom top'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// end after scrolling 500px beyond the start</span><span class="pln">
        scrub</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">})</span><span class="pln">

    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-1'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> x</span><span class="pun">:</span><span class="pln"> </span><span class="pun">-</span><span class="lit">400</span><span class="pln"> </span><span class="pun">});</span><span class="pln">
    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-2'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">},</span><span class="pln"> </span><span class="str">"&lt;"</span><span class="pun">);</span><span class="pln">
    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-2'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">},</span><span class="pln"> </span><span class="str">"text2"</span><span class="pun">);</span><span class="pln">
    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-3'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">},</span><span class="pln"> </span><span class="str">"&lt;"</span><span class="pun">);</span><span class="pln">
    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-3'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">});</span><span class="pln">
    tl</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.text-4'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">},</span><span class="pln"> </span><span class="str">"&lt;"</span><span class="pun">);</span><span class="pln">

    </span><span class="kwd">const</span><span class="pln"> tl2 </span><span class="pun">=</span><span class="pln"> gsap</span><span class="pun">.</span><span class="pln">timeline</span><span class="pun">({</span><span class="pln">
      scrollTrigger</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        trigger</span><span class="pun">:</span><span class="pln"> </span><span class="str">'.section'</span><span class="pun">,</span><span class="pln">
        start</span><span class="pun">:</span><span class="pln"> </span><span class="str">'top top'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// when the top of the trigger hits the top of the viewport</span><span class="pln">
        </span><span class="kwd">end</span><span class="pun">:</span><span class="pln"> </span><span class="str">'bottom top'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// end after scrolling 500px beyond the start</span><span class="pln">
        scrub</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">})</span><span class="pln">
    tl2</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="str">'.overlay'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0.2</span><span class="pln"> </span><span class="pun">})</span><span class="pln">

    gsap</span><span class="pun">.</span><span class="pln">timeline</span><span class="pun">()</span><span class="pln">
            </span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">tl</span><span class="pun">)</span><span class="pln">
            </span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">tl2</span><span class="pun">)</span></pre>

<p>
	 
</p>




<p data-height="450" data-slug-hash="XJmRYKP" data-user="Kotomi-Ichinose" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/Kotomi-Ichinose/pen/XJmRYKP'>XJmRYKP</a> by Kotomi-Ichinose (<a href='https://codepen.io/Kotomi-Ichinose'>@Kotomi-Ichinose</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">44899</guid><pubDate>Tue, 05 Aug 2025 11:29:02 +0000</pubDate></item><item><title>Parallax Scrolling Effect for Process Section  I need to create a visually engaging parallax effect for the "Process" section of a website. The flow should have the following steps, each with its own parallax scroll transition:  First Section: Defining th</title><link>https://gsap.com/community/forums/topic/44708-parallax-scrolling-effect-for-process-section-i-need-to-create-a-visually-engaging-parallax-effect-for-the-process-section-of-a-website-the-flow-should-have-the-following-steps-each-with-its-own-parallax-scroll-transition-first-section-defining-th/</link><description><![CDATA[<p>
	<strong>Parallax Scrolling Effect for Process Section</strong>
</p>

<p>
	I need to create a visually engaging parallax effect for the "Process" section of a website. The flow should have the following steps, each with its own parallax scroll transition:
</p>

<ol>
	<li>
		<p>
			<strong>First Section: Defining the Scope</strong>
		</p>

		<ul>
			<li>
				<p>
					The first section should appear with a smooth scrolling effect that reveals a document or paper with the title "Defining the Scope." This section should give the impression of research, planning, or ideation, with text or visual elements gradually becoming visible as the user scrolls down. The background could feature soft, abstract shapes or diagrams to emphasize the planning phase.
				</p>
			</li>
		</ul>
	</li>
	<li>
		<p>
			<strong>Second Section: UI/UX Design</strong>
		</p>

		<ul>
			<li>
				<p>
					On scroll, the second section should come into view, showcasing UI/UX design. This section should display a video or animation of a designer working on Figma, creating wireframes, prototypes, or mockups. The video should seamlessly transition in sync with the scroll and blend well with the rest of the design. The background can feature design elements like grids, color palettes, or interface components.
				</p>
			</li>
		</ul>
	</li>
	<li>
		<p>
			<strong>Third Section: Writing Code</strong>
		</p>

		<ul>
			<li>
				<p>
					As the user continues scrolling, the third section should reveal a code editor interface showing developers writing code. The code could appear dynamically, with text and snippets being typed out or changed as the user scrolls. This could simulate the coding process and give a sense of progression. The background can feature tech-oriented visuals, like snippets of code or server-side images.
				</p>
			</li>
		</ul>
	</li>
	<li>
		<p>
			<strong>Fourth Section: Product Ready to Launch</strong>
		</p>

		<ul>
			<li>
				<p>
					On the final scroll, the section should show the culmination of the process: the product is ready for launch. This could be represented by a clean product page with visuals of the final product (such as an app or website) and an animation of a "Launch" button being clicked. The background can use bright, energetic visuals to signify success, completion, and excitement.
				</p>
			</li>
		</ul>
	</li>
</ol>

<p>
	<strong>Technical Requirements:</strong>
</p>

<ul>
	<li>
		<p>
			Each section should smoothly transition based on the user’s scroll.
		</p>
	</li>
	<li>
		<p>
			Parallax effect should create a sense of depth as elements move at different speeds.
		</p>
	</li>
	<li>
		<p>
			Ensure the design is responsive across different screen sizes.
		</p>
	</li>
	<li>
		<p>
			Use subtle animations and transitions for visual appeal without being too distracting.
		</p>
	</li>
</ul>
]]></description><guid isPermaLink="false">44708</guid><pubDate>Tue, 17 Jun 2025 06:05:32 +0000</pubDate></item><item><title>Complex MorphSVG with gradients</title><link>https://gsap.com/community/forums/topic/44655-complex-morphsvg-with-gradients/</link><description><![CDATA[<p>
	Hi everyone, 
</p>

<p>
	 
</p>

<p>
	I need to make transitions of 3 "blobs", each has a different form and his own gradient.
</p>

<p>
	I don't know if it is possible to make such a complex morph, I've been trying the whole afternoon, something moves but it doesn't morph...
</p>

<p>
	 
</p>

<p>
	Does someone have an idea ?
</p>

<p>
	Thanks
</p>




<p data-height="450" data-slug-hash="raVjWEo" data-user="fripi" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/fripi/pen/raVjWEo'>raVjWEo</a> by fripi (<a href='https://codepen.io/fripi'>@fripi</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">44655</guid><pubDate>Wed, 04 Jun 2025 21:04:53 +0000</pubDate></item><item><title>Animation like this</title><link>https://gsap.com/community/forums/topic/44675-animation-like-this/</link><description><![CDATA[<p>
	Hello, im searching for any example similar to this video <a href="https://www.youtube.com/watch?v=t5Kb5f_Fldg&amp;ab_channel=DreamLiu" rel="external nofollow">https://www.youtube.com/watch?v=t5Kb5f_Fldg&amp;ab_channel=DreamLiu</a>, can any helpe me? or give me some ide to develop?, thanks
</p>
]]></description><guid isPermaLink="false">44675</guid><pubDate>Mon, 09 Jun 2025 22:31:35 +0000</pubDate></item><item><title>Vertical animation with ScrollTrigger for reverse column of pictures</title><link>https://gsap.com/community/forums/topic/44658-vertical-animation-with-scrolltrigger-for-reverse-column-of-pictures/</link><description><![CDATA[<p>
	I have only recently discovered this library and I am still struggling to complete the animations. I am trying to animate a 3-column section. In the middle column, we have a text, centered in the section (100vh). In the first and last column we have a group of images (4) that while scrolling, one column slides the images up and down while in the other column, the images go in the opposite direction. I leave the codepen of what I have achieved so far, but it doesn't work correctly. The central text must remain fixed, until the images have finished applying the animation. Can you help me?.  Thanks for taking the time to read me
</p>

<p>
	
</p>




<p data-height="450" data-slug-hash="ByNWYEL" data-user="eduwhite" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/eduwhite/pen/ByNWYEL'>ByNWYEL</a> by eduwhite (<a href='https://codepen.io/eduwhite'>@eduwhite</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">44658</guid><pubDate>Thu, 05 Jun 2025 12:06:21 +0000</pubDate></item><item><title>Publish the GSAP Banners with  Google DV360</title><link>https://gsap.com/community/forums/topic/44577-publish-the-gsap-banners-with-google-dv360/</link><description><![CDATA[<p style="color:#000000;">
	 
</p>

<p style="color:#000000;">
	<span style="color:#ecf0f1;">Hi all,</span>
</p>

<p style="color:#000000;">
	<span style="color:#ecf0f1;">I’ve created some GSAP-based ads that will be published and run by an agency through Google DV360. These ads are composed of static images with basic animations, and I haven’t included an <code>Enabler.js</code> file, as I understood it’s typically used for rich media functionality.</span>
</p>

<p style="color:#000000;">
	<span style="color:#ecf0f1;">Since this is my first time preparing creatives for DV360, I’d really appreciate any guidance you can offer. Are there any additional files or specific code requirements I should be aware of to ensure proper compatibility and tracking?</span>
</p>

<p style="color:#000000;">
	<span style="color:#ecf0f1;">Thanks in advance for your support!</span>
</p>

<p style="color:#000000;">
	<span style="color:#ecf0f1;">Best regards,</span>
</p>

<p style="color:#000000;">
	 
</p>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://gsap.com/community/applications/core/interface/file/attachment.php?id=14302&amp;key=dd513b64ecccefed7c374ceb40257249" data-fileExt='html' data-fileid='14302' data-filekey='dd513b64ecccefed7c374ceb40257249'>index.html</a> 
<a class="ipsAttachLink" href="https://gsap.com/community/applications/core/interface/file/attachment.php?id=14303&amp;key=fb919d6949ad2692d770668b8bb00601" data-fileExt='js' data-fileid='14303' data-filekey='fb919d6949ad2692d770668b8bb00601'>script.js</a> 
<a class="ipsAttachLink" href="https://gsap.com/community/applications/core/interface/file/attachment.php?id=14304&amp;key=33b0db94779ec60c85c4fe7278f3d3b8" data-fileExt='css' data-fileid='14304' data-filekey='33b0db94779ec60c85c4fe7278f3d3b8'>style.css</a></p>]]></description><guid isPermaLink="false">44577</guid><pubDate>Wed, 14 May 2025 16:01:47 +0000</pubDate></item><item><title>Help with ScrollTrigger and MotionPath ?</title><link>https://gsap.com/community/forums/topic/44404-help-with-scrolltrigger-and-motionpath/</link><description><![CDATA[<p>
	Hello there I am new to gsap I am researching for a website I have a section with 4 rows of alternating image  and content    and  I am trying to slide image in a svg path while scrolling to the end of svg. I having problem align the items with original position  image in section with svg as I can't find the percentage of offset of the image in the svg path according to height of original image. Can somebody please help me solve this problem.
</p>

<p>
	 
</p>




<p data-height="450" data-slug-hash="OPJqVMg" data-user="rafik-outside" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/rafik-outside/pen/OPJqVMg'>OPJqVMg</a> by rafik-outside (<a href='https://codepen.io/rafik-outside'>@rafik-outside</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">44404</guid><pubDate>Fri, 04 Apr 2025 09:52:29 +0000</pubDate></item><item><title>How can I do a fly in from right on a page that doesn't fill the screen?</title><link>https://gsap.com/community/forums/topic/44006-how-can-i-do-a-fly-in-from-right-on-a-page-that-doesnt-fill-the-screen/</link><description><![CDATA[<p>
	I'm designing this domain: <a href="https://qa-oracle.com/" rel="external nofollow">https://qa-oracle.com/</a>
</p>

<p>
	If you look at it you'll see that the outside is gray and the 'page' is light blue.
</p>

<p>
	I need the login fly in to come from the right top but I don't want it to fly into the gray area, I want it to fly directly into the right side of the blue div.<br />
	I wanted to just use css but I can't see how to do it.<br />
	Can you help?
</p>
]]></description><guid isPermaLink="false">44006</guid><pubDate>Fri, 31 Jan 2025 20:11:00 +0000</pubDate></item><item><title>HTML5 Ad Validation (initial load, CPU, size, etc)</title><link>https://gsap.com/community/forums/topic/42590-html5-ad-validation-initial-load-cpu-size-etc/</link><description><![CDATA[<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	Hi everyone,
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	 
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	I wanted to share something with you that I think could be super useful. I've created a tool called AdValify.io — a free platform where you can benchmark your HTML5 ads for performance and validate them against IAB ad specifications. It checks important things like <strong>load speed, initial load size, CPU usage</strong>, and more, helping you make sure your ads meet the right standards before sending them off to clients.
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	 
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	Right now, AdValify is completely free to use. Down the line, I’ll be introducing premium tiers with extra features, but the free plan will always be available. I know this post has a bit of a commercial twist, but I genuinely believe the free plan will be valuable to many of you who want to ensure your ads are performant and adhere to industry standards before they go live.
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	 
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	I’m currently looking for feedback from the community on how the tool works and what additional ad validation tests could be helpful. So if you have a moment, please check out <a href="https://www.advalify.io/html5-ad-validator" rel="external nofollow">AdValify.io</a> and let me know what you think! Your input will help make the tool even better for all of us.
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	 
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	Thank you so much for your feedback!
</div>

<div style="background-color:#ffffff;color:#1f1f1f;font-size:16px;text-align:left;">
	Roy
</div>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://gsap.com/community/uploads/monthly_2024_10/2024-10-02_08-52-19.png.8da371e1d816fe88eb70cb9524feeb18.png" data-fileid="13436" data-fileext="png" rel=""><img alt="2024-10-02_08-52-19.png" class="ipsImage ipsImage_thumbnailed" data-fileid="13436" data-ratio="52.5" width="1000" src="https://gsap.com/community/uploads/monthly_2024_10/2024-10-02_08-52-19.thumb.png.4fd55fab89f531ff8bfde2eeb395ec89.png" /></a>
</p>
]]></description><guid isPermaLink="false">42590</guid><pubDate>Wed, 02 Oct 2024 06:56:45 +0000</pubDate></item><item><title>flicker on first load</title><link>https://gsap.com/community/forums/topic/15482-flicker-on-first-load/</link><description><![CDATA[
<p>Hi guys,</p>
<p> </p>
<p>I have been working on some banners over the past few days. I have setup an init() function which positions all of the animated images and text (which looks like this):</p>
<p> </p>
<p></p>
<pre class="ipsCode prettyprint">        function initCSS() {

            TweenLite.set(("#intro"), {y: 380}),

            TweenLite.set(("#titleHolder"), {x: -200}),

            TweenLite.set((".t-2"), {x: -200}),

            TweenLite.set(("#product1"), {x: -200}),

            TweenLite.set(("#product2"), {x: -200}),

            TweenLite.set(("#cta"), {x: -200})
        }
</pre>I have the GS stuff in its own JS file and the CSS and html together in the html file.<p> </p>
<p>GS is brought in at the top of the HTML file and the external JS GS stuff at the bottom.</p>
<p> </p>
<p>When the banner is very first loaded all of the stuff which animates above is all out of position and flickers. Its as if the init() is taking a few milliseconds to kick in so its falling back on the standard css for positioning. Text and images are all overlapped etc.</p>
<p> </p>
<p>What is the best way to prevent this happening?</p>
<p> </p>
<p>Cheers,</p>
<p> </p>
<p>Ste</p>
]]></description><guid isPermaLink="false">15482</guid><pubDate>Tue, 22 Nov 2016 12:01:24 +0000</pubDate></item><item><title>Playing pinned scrubbed animation only once disables aos for all elements below the section.</title><link>https://gsap.com/community/forums/topic/42927-playing-pinned-scrubbed-animation-only-once-disables-aos-for-all-elements-below-the-section/</link><description><![CDATA[<p>
	Hello again,
</p>

<p>
	I was doing this pinned scrubbed animation that should play only once when going down, I have achieved this by doing this:
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pln">scrollTrigger</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  onLeave</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">self</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">let</span><span class="pln"> start </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">start</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">scroll</span><span class="pun">(</span><span class="kwd">self</span><span class="pun">.</span><span class="pln">start</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">disable</span><span class="pun">();</span><span class="pln">
    </span><span class="kwd">self</span><span class="pun">.</span><span class="pln">animation</span><span class="pun">.</span><span class="pln">progress</span><span class="pun">(</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
    </span><span class="typ">ScrollTrigger</span><span class="pun">.</span><span class="pln">refresh</span><span class="pun">();</span><span class="pln">
    window</span><span class="pun">.</span><span class="pln">scrollTo</span><span class="pun">(</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> start</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">},</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	this makes the animation play only one time but disables all of the animation done by aos for all sections that comes after this timeline.
</p>

<p>
	 
</p>

<p>
	And also suggest me a better way to go to specific scroll position to scroll when clicking on the steps button. Currently I have done this by getting scroll position with the help of getScrollPosition() helper function that I got from <a href="https://gsap.com/docs/v3/HelperFunctions/helpers/getScrollPosition/" rel="external nofollow">GSAP docs</a> and adding it to scroll the window like this:<br />
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="kwd">const</span><span class="pln"> scrollPoints </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="lit">3100</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3880</span><span class="pun">,</span><span class="pln"> </span><span class="lit">4650</span><span class="pun">,</span><span class="pln"> </span><span class="lit">5400</span><span class="pun">,</span><span class="pln"> </span><span class="lit">6213</span><span class="pun">,</span><span class="pln"> </span><span class="lit">7100</span><span class="pun">];</span><span class="pln"> </span><span class="com">// scroll point got from getScrollPosition</span><span class="pln">
</span><span class="kwd">function</span><span class="pln"> goToStep</span><span class="pun">(</span><span class="pln">index</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	gsap</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="pln">window</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
		scrollTo</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
			y</span><span class="pun">:</span><span class="pln"> scrollPoints</span><span class="pun">[</span><span class="pln">index</span><span class="pun">],</span><span class="pln">
			autoKill</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln">
		</span><span class="pun">},</span><span class="pln">
		duration</span><span class="pun">:</span><span class="pln"> </span><span class="lit">0.5</span><span class="pun">,</span><span class="pln">
		ease</span><span class="pun">:</span><span class="pln"> </span><span class="str">"none"</span><span class="pun">,</span><span class="pln">
	</span><span class="pun">});</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
steps</span><span class="pun">.</span><span class="pln">forEach</span><span class="pun">((</span><span class="pln">button</span><span class="pun">,</span><span class="pln"> index</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	button</span><span class="pun">.</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"click"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> goToStep</span><span class="pun">(</span><span class="pln">index</span><span class="pun">));</span><span class="pln">
</span><span class="pun">});</span></pre>

<p>
	 
</p>

<p>
	<span class="ipsEmoji">😅</span> and lastly, how  to optimize this animation mobile responsive, I have already done this with <a href="https://greensock.com/docs/v3/GSAP/gsap.matchMedia()" rel="external nofollow">gsap.matchMedia()</a>, but for some reason it scroll 2 sections at a time. Sorry, but I haven't included this code in codepen.<br />
	<br />
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="kwd">function</span><span class="pln"> setupAnimations</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">const</span><span class="pln"> container </span><span class="pun">=</span><span class="pln"> document</span><span class="pun">.</span><span class="pln">querySelector</span><span class="pun">(</span><span class="str">".group #our-process"</span><span class="pun">);</span><span class="pln">
	</span><span class="kwd">const</span><span class="pln"> breakPoint </span><span class="pun">=</span><span class="pln"> </span><span class="lit">560</span><span class="pun">;</span><span class="pln">
	</span><span class="kwd">const</span><span class="pln"> breakPointDesktop </span><span class="pun">=</span><span class="pln"> </span><span class="lit">770</span><span class="pun">;</span><span class="pln">

	mm</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">
		</span><span class="pun">{</span><span class="pln">
			isTablet</span><span class="pun">:</span><span class="pln"> </span><span class="str">`(min-width: ${breakPoint}px)`</span><span class="pun">,</span><span class="pln">
			isMobile</span><span class="pun">:</span><span class="pln"> </span><span class="str">`(max-width: ${breakPoint - 1}px)`</span><span class="pun">,</span><span class="pln">
			isDesktop</span><span class="pun">:</span><span class="pln"> </span><span class="str">`(min-width: ${breakPointDesktop}px)`</span><span class="pun">,</span><span class="pln">
		</span><span class="pun">},</span><span class="pln">
		</span><span class="pun">(</span><span class="pln">context</span><span class="pun">)</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
			</span><span class="kwd">const</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> isTablet</span><span class="pun">,</span><span class="pln"> isMobile</span><span class="pun">,</span><span class="pln"> isDesktop </span><span class="pun">}</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> context</span><span class="pun">?.</span><span class="pln">conditions</span><span class="pun">;</span><span class="pln">
			</span><span class="kwd">const</span><span class="pln"> containerGroup </span><span class="pun">=</span><span class="pln"> document</span><span class="pun">.</span><span class="pln">querySelector</span><span class="pun">(</span><span class="pln">
				</span><span class="str">".process-step-wrapper-group"</span><span class="pln">
			</span><span class="pun">);</span><span class="pln">
			</span><span class="kwd">let</span><span class="pln"> width </span><span class="pun">=</span><span class="pln"> window</span><span class="pun">.</span><span class="pln">innerWidth</span><span class="pun">;</span><span class="pln">

			window</span><span class="pun">.</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"resize"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				width </span><span class="pun">=</span><span class="pln"> window</span><span class="pun">.</span><span class="pln">innerWidth</span><span class="pun">;</span><span class="pln">
			</span><span class="pun">});</span><span class="pln">

			</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isDesktop</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				createStepCounterAnimation</span><span class="pun">();</span><span class="pln">
				createProcessTimeline</span><span class="pun">(</span><span class="pln">container</span><span class="pun">,</span><span class="pln"> sortedList</span><span class="pun">,</span><span class="pln"> devfinityLogo</span><span class="pun">);</span><span class="pln">
			</span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
				gsap</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="pln">processList</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
					scrollTrigger</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
						trigger</span><span class="pun">:</span><span class="pln"> containerGroup</span><span class="pun">,</span><span class="pln">
						start</span><span class="pun">:</span><span class="pln"> isTablet </span><span class="pun">?</span><span class="pln"> </span><span class="str">"top top+=4%"</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">"top top+=10%"</span><span class="pun">,</span><span class="pln">
						</span><span class="com">// end: "+=3500",</span><span class="pln">
						</span><span class="kwd">end</span><span class="pun">:</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">`+=${containerGroup.offsetWidth}`</span><span class="pun">,</span><span class="pln">
						markers</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln">
						scrub</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln">
						pin</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
						smoothChildTiming</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
						toggleActions</span><span class="pun">:</span><span class="pln"> </span><span class="str">"play none none reverse"</span><span class="pun">,</span><span class="pln">
						</span><span class="com">// onUpdate: function ({ progress, animation }) {</span><span class="pln">
						</span><span class="com">// 	// get the required scroll position</span><span class="pln">
						</span><span class="com">// 	getScrollPosition(animation, progress);</span><span class="pln">
						</span><span class="com">// },</span><span class="pln">
						snap</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">/</span><span class="pln"> </span><span class="pun">(</span><span class="pln">processList</span><span class="pun">.</span><span class="pln">length </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pun">),</span><span class="pln">
						</span><span class="com">// snap: [2947, 3688, 4468, 5240, 5995, 6446],</span><span class="pln">
					</span><span class="pun">},</span><span class="pln">
					duration</span><span class="pun">:</span><span class="pln"> </span><span class="lit">2</span><span class="pun">,</span><span class="pln">
					xPercent</span><span class="pun">:</span><span class="pln"> </span><span class="pun">-</span><span class="lit">100</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="pun">(</span><span class="pln">processList</span><span class="pun">.</span><span class="pln">length </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pun">),</span><span class="pln">
					ease</span><span class="pun">:</span><span class="pln"> </span><span class="str">"none"</span><span class="pun">,</span><span class="pln">
				</span><span class="pun">});</span><span class="pln">
			</span><span class="pun">}</span><span class="pln">
		</span><span class="pun">}</span><span class="pln">
	</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>

<p>
	Thank you in advance, <span class="ipsEmoji">👍🏽</span>
</p>




<p data-height="450" data-slug-hash="oNKQjOY?editors=1111" data-user="sagarkhadka" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/sagarkhadka/pen/oNKQjOY?editors=1111'>oNKQjOY?editors=1111</a> by sagarkhadka (<a href='https://codepen.io/sagarkhadka'>@sagarkhadka</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">42927</guid><pubDate>Fri, 08 Nov 2024 09:54:10 +0000</pubDate></item></channel></rss>
