<?xml version="1.0"?>
<rss version="2.0"><channel><title>GSAP Latest Topics</title><link>https://gsap.com/community/forums/forum/11-gsap/</link><description>GSAP Latest Topics</description><language>en</language><item><title>Keyboard focus remains hidden behind ScrollTrigger animated element</title><link>https://gsap.com/community/forums/topic/45452-keyboard-focus-remains-hidden-behind-scrolltrigger-animated-element/</link><description><![CDATA[<p>
	 
</p>

<p>
	Hello, I’m having an issue with tabbable content being covered by an element during a ScrollTrigger 'expand on scroll' scrub animation. When navigating with the keyboard, if I tab past the animation so it completes, then shift+tab back to the “Tab back to this link” element, the link stays hidden behind the expanded element. This means a keyboard user can focus the link but can’t actually see it.<br />
	 
</p>

<p>
	Is there a recommended workaround for handling this kind of issue? 
</p>

<p>
	 
</p>

<p>
	I hope I have explained this clearly.. to help I have created a pared back demo to show the issue<br />
	<br />
	<br />
	<br />
	Thanks for your help!
</p>




<p data-height="450" data-slug-hash="RNoKdOY" data-user="shellington" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/shellington/pen/RNoKdOY'>RNoKdOY</a> by shellington (<a href='https://codepen.io/shellington'>@shellington</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45452</guid><pubDate>Mon, 18 May 2026 11:57:30 +0000</pubDate></item><item><title>FLIP and z-index</title><link>https://gsap.com/community/forums/topic/30913-flip-and-z-index/</link><description><![CDATA[
<p>
	On the codePen only the second image from the top in the first column will click. I have two small issues that I am trying to wrap my head around:
</p>

<p>
	 
</p>

<p>
	1. when the full size element is clicked to return to it's thumbnail state, I can't seem to get the z-index to have an effect on top of my other flex columns
</p>

<p>
	2. when the full size element is clicked it removes the thumbnail (while it is flipping) and then returns it to the document flow when the Flip ends and you can see the column items jump when it removes and then adds the element back
</p>

<p>
	 
</p>

<p>
	These are probably simple mistakes on my part with using Flip, but I can't seem to figure out exactly how fix them
</p>

<p>
	 
</p>




<p data-height="450" data-slug-hash="GROqaWb" data-user="celli" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/celli/pen/GROqaWb'>GROqaWb</a> by celli (<a href='https://codepen.io/celli'>@celli</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">30913</guid><pubDate>Sat, 05 Feb 2022 16:24:01 +0000</pubDate></item><item><title>Where exactly should I insert gsap.registerPlugin() in the React project?</title><link>https://gsap.com/community/forums/topic/45443-where-exactly-should-i-insert-gsapregisterplugin-in-the-react-project/</link><description><![CDATA[<p>
	I use a lot of useGSAP and the official documentation says that to avoid the error, you need to use gsap.registerPlugin(useGSAP). However, I do not understand exactly where to insert it, outside of the component or in the component itself — the official documentation does not answer this question (<a href="https://gsap.com/resources/react-basics/#usegsap-is-your-best-friend-" rel="external nofollow">https://gsap.com/resources/react-basics/#usegsap-is-your-best-friend-</a>)
</p>

<p>
	 
</p>

<p>
	It is also not clear what is meant by
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			There is no harm in registering the same plugin multiple times (but it doesn't help either).
		</p>
	</div>
</blockquote>

<p>
	in the article — <a href="https://gsap.com/docs/v3/GSAP/gsap.registerPlugin" rel="external nofollow">https://gsap.com/docs/v3/GSAP/gsap.registerPlugin</a> ()/ .
</p>

<p>
	 
</p>

<p>
	So, to summarize, I have two questions.:<br />
	1. Should I use gsap.registerPlugin(useGSAP) inside or outside the component?<br />
	2. Is it enough to declare gsap.registerPlugin(useGSAP) in the root component, or should it be declared in all components where it is used?
</p>
]]></description><guid isPermaLink="false">45443</guid><pubDate>Mon, 11 May 2026 02:26:44 +0000</pubDate></item><item><title>My ScrollTo animation slows down when using ScrollTrigger</title><link>https://gsap.com/community/forums/topic/45442-my-scrollto-animation-slows-down-when-using-scrolltrigger/</link><description><![CDATA[<p>
	hey so im a beginner of GSAP, this is my first time using the library. i’m trying to make a long web page.
</p>

<p>
	 
</p>

<p>
	the page has a side menu div which is placed in section 2 (about like- top: 100%)  from the screen. the ScrollTrigger i have for this menu div has a trigger when you scroll and reach the center of the menu div- it pins it so the menu goes down with you from then on (but not up to before the trigger). in addition, the menu div has links, which are supposed to lead to each section- this is the ScrollTo.
</p>

<p>
	 
</p>

<p>
	anyway i got both things to work on their own, but when they’re both active, my ScrollTo animation acts weird- the duration i set for it is 1, but the animation becomes really slow for a couple of  seconds, and then jumps up in normal speed. if i delete the scrollTrigger function i’ve got, the ScrollTo works perfectly well. 
</p>

<p>
	 
</p>

<p>
	Did anybody else have this issue before and could help me?<span class="ipsEmoji">☺️</span><span class="ipsEmoji">☺️</span>
</p>
]]></description><guid isPermaLink="false">45442</guid><pubDate>Sun, 10 May 2026 13:30:07 +0000</pubDate></item><item><title>ScrollSmoother wrong initial position on first load - Webflow only</title><link>https://gsap.com/community/forums/topic/45439-scrollsmoother-wrong-initial-position-on-first-load-webflow-only/</link><description><![CDATA[<p>
	Hi, I've been having an issue with ScrollSmoother on a Webflow site where images with data-speed are in the wrong initial position on first load, but work perfectly on normal refresh.
</p>

<p>
	I've created a <a href="https://gsap.com/demo" rel="external nofollow">minimal demo</a> and it works fine: 
</p>

<p>
	But on my live Webflow site it's broken: <a href="https://www.lyricarchitects.com.au/" rel="external nofollow">https://www.lyricarchitects.com.au/</a>
</p>

<p>
	The parallax image near the bottom of the homepage (the child with the dog) sits in the wrong position and doesn't move on fresh load. Normal refresh fixes it instantly.
</p>

<p>
	Things I've tried: setTimeout delays, double requestAnimationFrame, invalidateOnRefresh, ignoreMobileResize, removing normalizeScroll, imagesLoaded, gsap.delayedCall refresh. None of them fix it on fresh load but all work fine in the <a href="https://gsap.com/demo" rel="external nofollow">minimal demo</a>.
</p>




<p data-height="450" data-slug-hash="YPpPORB" data-user="braymay" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/braymay/pen/YPpPORB'>YPpPORB</a> by braymay (<a href='https://codepen.io/braymay'>@braymay</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45439</guid><pubDate>Sun, 03 May 2026 00:20:23 +0000</pubDate></item><item><title>MorphSVG animation has changed</title><link>https://gsap.com/community/forums/topic/45436-morphsvg-animation-has-changed/</link><description><![CDATA[<p>
	Hi gsap forum! <br />
	<br />
	I have a page loading animation on a website, where I use Morph SVG to transition from a large rectangle, to a similar rectangle shape with a concave curve at the bottom, then up to almost nothing (a rectangle with full with and a height of 1px). The shapes are used as a clip-path on the div in question. <br />
	<br />
	Previously, this animation worked as I expected. But recently, I logged into the website, and the animation had changed. In the second part of the transition, from the 'rectangle with concave curve at the bottom' shape to the 'wide rectangle that is 1px tall' shape, the transition results in the final shape also shrinking in width at the top during the animation. However at the end of the animation, it goes back to 100% width. Before, it stayed 100% width the whole time. <br />
	<br />
	I'm not sure how long ago this changed - I'm not sure if it's a combination of the CSS clip path with the GSAP morph SVG, because the clip-path seems to work as expected if it's not animating, I suspect it's something odd with the GSAP side of things. <br />
	<br />
	The <a href="https://gsap.com/demo" rel="external nofollow">minimal demo</a> I hope shows what I mean clearly. During the second transition, the shape shouldn't get narrower at the top. 
</p>




<p data-height="450" data-slug-hash="EaNaNrB" data-user="cselin" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/cselin/pen/EaNaNrB'>EaNaNrB</a> by cselin (<a href='https://codepen.io/cselin'>@cselin</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45436</guid><pubDate>Fri, 01 May 2026 00:39:40 +0000</pubDate></item><item><title>Testimonials Issues draggable issues</title><link>https://gsap.com/community/forums/topic/45441-testimonials-issues-draggable-issues/</link><description><![CDATA[<p>
	Hey I have create a testimonials with gsap and draggable , I do setup but issues "Draggable create faield"<br />
	HTML: 
</p>

<p>
	&lt;div class="testimonials"&gt;<br />
	  &lt;div class="js-testimonials-proxy"&gt;&lt;/div&gt;<br />
	  &lt;testimonials-slider class="testimonials-wrapper"&gt;
</p>

<p>
	    &lt;!-- Proxy --&gt;<br />
	 
</p>

<p>
	    &lt;!-- Images --&gt;<br />
	    &lt;div class="testimonials-images"&gt;<br />
	      &lt;div class="testimonials-images-item"&gt;1&lt;/div&gt;<br />
	      &lt;div class="testimonials-images-item"&gt;2&lt;/div&gt;<br />
	      &lt;div class="testimonials-images-item"&gt;3&lt;/div&gt;<br />
	      &lt;div class="testimonials-images-item"&gt;4&lt;/div&gt;<br />
	    &lt;/div&gt;
</p>

<p>
	    &lt;!-- Content --&gt;<br />
	    &lt;div class="testimonials-content-slider"&gt;<br />
	      &lt;div class="testimonials-content-wrapper"&gt;<br />
	        &lt;div class="testimonials-content"&gt;Content 1&lt;/div&gt;<br />
	        &lt;div class="testimonials-content"&gt;Content 2&lt;/div&gt;<br />
	        &lt;div class="testimonials-content"&gt;Content 3&lt;/div&gt;<br />
	        &lt;div class="testimonials-content"&gt;Content 4&lt;/div&gt;<br />
	      &lt;/div&gt;
</p>

<p>
	      &lt;button class="prev"&gt;Prev&lt;/button&gt;<br />
	      &lt;button class="next"&gt;Next&lt;/button&gt;<br />
	    &lt;/div&gt;
</p>

<p>
	  &lt;/testimonials-slider&gt;<br />
	&lt;/div&gt;<br />
	<br />
	 
</p>

<div style="background-color:rgb(24,24,24);font-size:14px;">
	<div style="color:rgb(228,228,228);">
		<span style="color:#82d2ce;">import</span><span style="color:#e4e4e4;"> { </span><span style="color:#87c3ff;">gsap</span><span style="color:#e4e4e4;">, </span><span style="color:#87c3ff;">Draggable</span><span style="color:#e4e4e4;"> } </span><span style="color:#82d2ce;">from</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'@lib/gsap'</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#82d2ce;">class</span><span style="color:#e4e4e4;"> </span><span style="color:#87c3ff;">TestimonialsSlider</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">extends</span><span style="color:#e4e4e4;"> </span><span style="color:#87c3ff;">HTMLElement</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#82d2ce;">constructor</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">super</span><span style="color:#e4e4e4;">();</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">onDrag</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">onDragStart</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">onDragEnd</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">onResize</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onResize</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">next</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">next</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">prev</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">prev</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">show</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">show</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">bind</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">);</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">activeElement</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> false;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">connectedCallback</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">_initialized</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">_initialized</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> true;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">section</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">closest</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.section'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">dom</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">[...</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelectorAll</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.</span>testimonials-images-item<span style="color:#e394dc;">'</span><span style="color:#e4e4e4;">)</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">[...</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelectorAll</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.</span>testimonials-content<span style="color:#e394dc;">'</span><span style="color:#e4e4e4;">)</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">proxy</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">section</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelector</span><span style="color:#e4e4e4;">(.</span>js-testimonials-proxy<span style="color:#e394dc;">'</span><span style="color:#e4e4e4;">),</span>
	</div>

	<div>
		<span style="color:rgb(228,228,228);">            </span><span style="color:rgb(170,160,250);">slider</span><span style="color:rgb(214,214,221);">:</span><span style="color:rgb(228,228,228);"> </span><span style="color:rgb(204,124,138);">this</span><span style="color:rgb(228,228,228);">.</span><span style="color:rgb(239,176,128);">querySelector</span><span style="color:rgb(228,228,228);">(</span><span style="color:rgb(227,148,220);">'</span><font color="#e4e4e4">.</font>testimonials-wrapper<span style="color:rgb(227,148,220);">'</span><span style="color:rgb(228,228,228);">),</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">prev</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelector</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.prev'</span><span style="color:#e4e4e4;">),</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">next</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelector</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.next'</span><span style="color:#e4e4e4;">),</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">contentContainer</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelector</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'.</span>testimonials-content-wrapper<span style="color:#e394dc;">'</span><span style="color:#e4e4e4;">)</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        };</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">console</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">log</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'dom'</span><span style="color:#e4e4e4;">, </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">);</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">initEvents</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">show</span><span style="color:#e4e4e4;">();</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#efb080;">init</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> () </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getOffset</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#ebc88d;">requestAnimationFrame</span><span style="color:#e4e4e4;">(() </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#ebc88d;">requestAnimationFrame</span><span style="color:#e4e4e4;">(() </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                    </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">setGsap</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        };</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">document</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">readyState</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">===</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'complete'</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#ebc88d;">init</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        } </span><span style="color:#82d2ce;">else</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">window</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">addEventListener</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'load'</span><span style="color:#e4e4e4;">, </span><span style="color:#ebc88d;">init</span><span style="color:#e4e4e4;">, { </span><span style="color:#aaa0fa;">once</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> true });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#e4e4e4;">// lazy images ke baad bhi refresh</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">item</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">img</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">item</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">querySelector</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'img'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#aaa0fa;">img</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">&amp;&amp;</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">!</span><span style="color:#aaa0fa;">img</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">complete</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#aaa0fa;">img</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">addEventListener</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'load'</span><span style="color:#e4e4e4;">, () </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                    </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getOffset</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                    </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">?.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                    </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                }, { </span><span style="color:#aaa0fa;">once</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> true });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            }</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== EVENTS ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">initEvents</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">prev</span><span style="color:#e4e4e4;">?.</span><span style="color:#efb080;">addEventListener</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'click'</span><span style="color:#e4e4e4;">, </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">prev</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">next</span><span style="color:#e4e4e4;">?.</span><span style="color:#efb080;">addEventListener</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'click'</span><span style="color:#e4e4e4;">, </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">next</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">window</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">addEventListener</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'resize'</span><span style="color:#e4e4e4;">, </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onResize</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== DRAG ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">||</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">((</span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">actuallPos</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">distance</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">abs</span><span style="color:#e4e4e4;">((</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">/</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">containerSize</span><span style="color:#e4e4e4;">);</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">d</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">min</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">max</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">distance</span><span style="color:#e4e4e4;">, </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;">), </span><span style="color:#ebc88d;">1</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">setProperty</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'--distance'</span><span style="color:#e4e4e4;">, </span><span style="color:#ebc88d;">1</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">d</span><span style="color:#e4e4e4;">);</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">&lt;=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">containerSize</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">fullSize</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            } </span><span style="color:#82d2ce;">else</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">&gt;=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">fullSize</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">containerSize</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">fullSize</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">transform</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">`translateX(</span><span style="color:#82d2ce;">${</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#d6d6dd;">                </span><span style="color:#d6d6dd;">el</span><span style="color:#d6d6dd;">.</span><span style="color:#aaa0fa;">actuallPos</span><span style="color:#d6d6dd;"> * (</span><span style="color:#ebc88d;">1</span><span style="color:#d6d6dd;"> - </span><span style="color:#aaa0fa;">d</span><span style="color:#d6d6dd;"> * </span><span style="color:#ebc88d;">0.5</span><span style="color:#d6d6dd;">) - </span><span style="color:#d6d6dd;">el</span><span style="color:#d6d6dd;">.</span><span style="color:#aaa0fa;">loopOffset</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#d6d6dd;">            </span><span style="color:#82d2ce;">}</span><span style="color:#e394dc;">px)`</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">classList</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">remove</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'show'</span><span style="color:#e4e4e4;">));</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">onDragEnd</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> false;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">((</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">, </span><span style="color:#d6d6dd;">n</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">abs</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">distance</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">&lt;</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.2</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">activeElement</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">n</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#d6d6dd;">gsap</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">to</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentContainer</span><span style="color:#e4e4e4;">, {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                    </span><span style="color:#aaa0fa;">height</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#d6d6dd;">[</span><span style="color:#d6d6dd;">n</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getBoundingClientRect</span><span style="color:#e4e4e4;">().</span><span style="color:#aaa0fa;">height</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">show</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            }</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== CONTENT ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">show</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">classList</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">remove</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'show'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">classList</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">add</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'hidden'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">active</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#d6d6dd;">[</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">activeElement</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#aaa0fa;">active</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">active</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">classList</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">remove</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'hidden'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">active</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">classList</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">add</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'show'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        }</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== NAV ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">next</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">||</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> true;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">();</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">gsap</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">to</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">, {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">x</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">round</span><span style="color:#e4e4e4;">((</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">/</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">*</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">duration</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.5</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">ease</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'power2.out'</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onUpdate</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> () </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">?.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            },</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onComplete</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">prev</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">||</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">isManuallyClicked</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> true;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">();</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">gsap</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">to</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">, {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">x</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">round</span><span style="color:#e4e4e4;">((</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">x</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">/</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">*</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">duration</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.5</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">ease</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'power2.out'</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onUpdate</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> () </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">?.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            },</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onComplete</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== RESIZE ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">onResize</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">) </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">();</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">setProperty</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'--distance'</span><span style="color:#e4e4e4;">, </span><span style="color:#ebc88d;">1</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">transform</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'translate3D(0,0,0)'</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getOffset</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">activeElement</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">gsap</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">to</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">, {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">x</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">duration</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.5</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">ease</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'power2.out'</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onUpdate</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> () </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">?.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">                </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            },</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onComplete</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== OFFSET ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">getOffset</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">forEach</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">size</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getBoundingClientRect</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">size</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">left</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">window</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">innerWidth</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">*</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.5</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">loopOffset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">containerSize</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">min</span><span style="color:#e4e4e4;">(</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">max</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getBoundingClientRect</span><span style="color:#e4e4e4;">().</span><span style="color:#aaa0fa;">width</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">*</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.7</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">||</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;">, </span><span style="color:#ebc88d;">400</span><span style="color:#e4e4e4;">),</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#ebc88d;">800</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        );</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">1</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">size</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">width</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">||</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">300</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">last</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#d6d6dd;">[</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">imagesArray</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">length</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">-</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">1</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">fullSize</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">last</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">offset</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">last</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">size</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">width</span><span style="color:#e4e4e4;">;</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">heights</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentsArray</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">map</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">prev</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">display</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">display</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'block'</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">const</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">h</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">getBoundingClientRect</span><span style="color:#e4e4e4;">().</span><span style="color:#aaa0fa;">height</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">el</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">display</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">prev</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;"> </span><span style="color:#aaa0fa;">h</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">contentContainer</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">style</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">height</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">max</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">...</span><span style="color:#aaa0fa;">heights</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">+</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'px'</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#e4e4e4;">/* ===== GSAP ===== */</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#efb080;">setGsap</span><span style="color:#e4e4e4;">() {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">console</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">warn</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'[testimonials-slider] proxy element nahi mila'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">=</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Draggable</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">create</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">, {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">type</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#e394dc;">'x'</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">trigger</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">inertia</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> false,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">snap</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">Math</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">round</span><span style="color:#e4e4e4;">(</span><span style="color:#d6d6dd;">t</span><span style="color:#e4e4e4;"> </span><span style="color:#d6d6dd;">/</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">) </span><span style="color:#d6d6dd;">*</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">snap</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#aaa0fa;">overshootTolerance</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0.1</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onDrag</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onThrowUpdate</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onDragStart</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragStart</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onThrowComplete</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span><span style="color:#e4e4e4;">,</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#efb080;">onDragEnd</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDragEnd</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">!</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#e4e4e4;">?.</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#d6d6dd;">console</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">warn</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'[testimonials-slider] Draggable create failed'</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#82d2ce;">return</span><span style="color:#e4e4e4;">;</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        }</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#e4e4e4;">// pehli baar position set karo</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#d6d6dd;">gsap</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">set</span><span style="color:#e4e4e4;">(</span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#d6d6dd;">dom</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">proxy</span><span style="color:#e4e4e4;">, { </span><span style="color:#aaa0fa;">x</span><span style="color:#d6d6dd;">:</span><span style="color:#e4e4e4;"> </span><span style="color:#ebc88d;">0</span><span style="color:#e4e4e4;"> });</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        </span><span style="color:#ebc88d;">requestAnimationFrame</span><span style="color:#e4e4e4;">(() </span><span style="color:#82d2ce;">=&gt;</span><span style="color:#e4e4e4;"> {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#aaa0fa;">draggable</span><span style="color:#d6d6dd;">[</span><span style="color:#ebc88d;">0</span><span style="color:#d6d6dd;">]</span><span style="color:#e4e4e4;">.</span><span style="color:#ebc88d;">update</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">            </span><span style="color:#cc7c8a;">this</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">onDrag</span><span style="color:#e4e4e4;">();</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">        });</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    }</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">}</span>
	</div>
	 

	<div style="color:rgb(228,228,228);">
		<span style="color:#82d2ce;">if</span><span style="color:#e4e4e4;"> (</span><span style="color:#d6d6dd;">!</span><span style="color:#d6d6dd;">customElements</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">get</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'testimonials-slider'</span><span style="color:#e4e4e4;">)) {</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">    </span><span style="color:#d6d6dd;">customElements</span><span style="color:#e4e4e4;">.</span><span style="color:#efb080;">define</span><span style="color:#e4e4e4;">(</span><span style="color:#e394dc;">'testimonials-slider'</span><span style="color:#e4e4e4;">, </span><span style="color:#87c3ff;">TestimonialsSlider</span><span style="color:#e4e4e4;">);</span>
	</div>

	<div style="color:rgb(228,228,228);">
		<span style="color:#e4e4e4;">}<br />
		<br />
		NOTE: I want to create a look like this.</span>
	</div>
</div>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://gsap.com/community/uploads/monthly_2026_05/Screenshot2026-05-04163427.png.5692cf30626bc91e8ed76686c8813216.png" data-fileid="14911" data-fileext="png" rel=""><img alt="Screenshot 2026-05-04 163427.png" class="ipsImage ipsImage_thumbnailed" data-fileid="14911" data-ratio="48.5" width="1000" src="https://gsap.com/community/uploads/monthly_2026_05/Screenshot2026-05-04163427.thumb.png.4dcc0cf625167abd4afb130dca54f22e.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://gsap.com/community/uploads/monthly_2026_05/Screenshot2026-05-04165010.png.b9bbdce94a21fed8e3b0ee9dfb331f6f.png" data-fileid="14912" data-fileext="png" rel=""><img alt="Screenshot 2026-05-04 165010.png" class="ipsImage ipsImage_thumbnailed" data-fileid="14912" data-ratio="52.21" width="837" src="https://gsap.com/community/uploads/monthly_2026_05/Screenshot2026-05-04165010.png.b9bbdce94a21fed8e3b0ee9dfb331f6f.png" /></a><br />
	<br />
	FOR MORE CHECK HERE:<a href="https://es-d-3609359120260506-019df2b9-53a8-7fc7-8ea0-d22199f1a277.codepen.dev/" rel="external nofollow">https://es-d-3609359120260506-019df2b9-53a8-7fc7-8ea0-d22199f1a277.codepen.dev/</a>
</p>
]]></description><guid isPermaLink="false">45441</guid><pubDate>Mon, 04 May 2026 11:20:56 +0000</pubDate></item><item><title>ScrollTrigger: Syncing a file icon movement into a kiosk tray with Lenis</title><link>https://gsap.com/community/forums/topic/45440-scrolltrigger-syncing-a-file-icon-movement-into-a-kiosk-tray-with-lenis/</link><description><![CDATA[<p>
	<span style="color:#0ae448;font-size:10px;padding:0px;text-align:left;">Required</span>
</p>

<div style="background-color:#0e100f;color:#fffce1;font-size:16px;padding:0px;text-align:left;">
	<div style="padding:0px;text-align:left;">
		<div style="border-color:#fffce1;border-style:solid;border-width:1.6px;font-size:1.125rem;padding:5px;text-align:left;">
			<div style="padding:0px;text-align:left;">
				<div style="padding:0px;text-align:left;">
					<div dir="ltr" lang="en" style="border:0px;padding:0px;text-align:left;vertical-align:baseline;" xml:lang="en">
						<div style="border:0px;padding:0px;text-align:left;vertical-align:baseline;">
							<div style="border:0px;padding:0px;text-align:left;vertical-align:baseline;">
								<div style="border:0px;color:#fffce1;padding:0px 8px;text-align:left;vertical-align:baseline;" title="Enter your text; hold ctrl and right click for more options">
									<p>
										Hi GSAP team,
									</p>

									<p>
										I'm building a smart printing interface for my project. I want to create a high-end scroll animation where a "PDF icon" moves from a phone mockup down into a "kiosk" tray as the user scrolls.
									</p>

									<p>
										<b>The Setup:</b>
									</p>

									<ul>
										<li>
											<p>
												Using <b>ScrollTrigger</b> with <code>scrub: true</code>.
											</p>
										</li>
										<li>
											<p>
												Using <b>Lenis</b> for smooth momentum scrolling.
											</p>
										</li>
										<li>
											<p>
												The goal is to have the file scale down and fade out exactly as it "enters" the kiosk.
											</p>
										</li>
									</ul>

									<p>
										<b>The Issue:</b> I want to ensure the alignment stays perfect across different screen sizes and that the Lenis smooth scroll doesn't interfere with the ScrollTrigger start/end points.
									</p>

									<p>
										I've attached my minimal CodePen demo above. Any advice on best practices for this "path" animation would be amazing!
									</p>

									<p>
										Thanks in advance!
									</p>
								</div>
							</div>
						</div>
					</div>
				</div>

				<div style="padding:0px;text-align:left;">
					<div style="padding:0px;text-align:left;">
						<div style="border:2px dashed transparent;padding:12px;text-align:left;">
							<i style="padding:0px;text-align:left;"></i>

							<div style="padding:0px;text-align:left;">
								<ul style="padding:0.1px 0px;text-align:left;">
									<li style="font-size:1.125rem;padding:0px;text-align:left;">
										<div style="padding:0px;text-align:left;">
											<span style="padding:0px;text-align:left;">Drag files here to attach, or</span><span> </span><a href="https://gsap.com/community/forums/forum/11-gsap/?do=add" style="background-color:transparent;color:inherit;padding:0px;text-align:left;" rel="">choose files...</a><span style="color:#0ae448;font-size:10px;padding:0px;text-align:left;">Required</span>

											<div style="background-color:#0e100f;color:#fffce1;font-size:16px;padding:0px;text-align:left;">
												<div style="padding:0px;text-align:left;">
													<div style="border-color:#fffce1;border-style:solid;border-width:1.6px;font-size:1.125rem;padding:5px;text-align:left;">
														<div style="padding:0px;text-align:left;">
															<div style="padding:0px;text-align:left;">
																<div dir="ltr" lang="en" style="border:0px;padding:0px;text-align:left;vertical-align:baseline;" xml:lang="en">
																	<div style="border:0px;padding:0px;text-align:left;vertical-align:baseline;">
																		<div style="border:0px;padding:0px;text-align:left;vertical-align:baseline;">
																			<div style="border:0px;color:#fffce1;padding:0px 8px;text-align:left;vertical-align:baseline;" title="Enter your text; hold ctrl and right click for more options">
																				<p style="color:#bbbaa6;padding:0px;text-align:left;">
																					 
																				</p>
																			</div>
																		</div>
																	</div>
																</div>
															</div>

															<div style="padding:0px;text-align:left;">
																<div style="padding:0px;text-align:left;">
																	<div style="border:2px dashed transparent;padding:12px;text-align:left;">
																		<i style="padding:0px;text-align:left;"></i>

																		<div style="padding:0px;text-align:left;">
																			<ul style="padding:0.1px 0px;text-align:left;">
																				<li style="font-size:1.125rem;padding:0px;text-align:left;">
																					<div style="padding:0px;text-align:left;">
																						<span style="padding:0px;text-align:left;">Drag files here to attach, or</span><span> </span><a href="https://gsap.com/community/forums/forum/11-gsap/?do=add" style="background-color:transparent;color:inherit;padding:0px;text-align:left;" rel="">choose files...Required</a>

																						<p>
																							 
																						</p>

																						<p>
																							<a href="https://gsap.com/community/forums/forum/11-gsap/?do=add" style="background-color:transparent;color:inherit;padding:0px;text-align:left;" rel="">Drag files here to attach, or choose files...</a>
																						</p>
																					</div>
																				</li>
																			</ul>
																		</div>
																	</div>
																</div>
															</div>
														</div>
													</div>
												</div>
											</div>
										</div>
									</li>
								</ul>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>




<p data-height="450" data-slug-hash="ByQNryZ" data-user="Khushali-the-lessful" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/Khushali-the-lessful/pen/ByQNryZ'>ByQNryZ</a> by Khushali-the-lessful (<a href='https://codepen.io/Khushali-the-lessful'>@Khushali-the-lessful</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45440</guid><pubDate>Mon, 04 May 2026 11:14:40 +0000</pubDate></item><item><title>Need help to create similar cube grid animation used in this website https://www.3coresec.com/</title><link>https://gsap.com/community/forums/topic/45433-need-help-to-create-similar-cube-grid-animation-used-in-this-website-httpswww3coreseccom/</link><description><![CDATA[<p>
	Hi there,
</p>

<p>
	I need help to create similar cube grid animation when scroll down used in this website <a href="https://www.3coresec.com/" rel="external nofollow">https://www.3coresec.com/</a>. Can you guys suggests any ready made theme/template that has similar cube grid animation?
</p>

<p>
	 
</p>

<p>
	Thanks
</p>

<p>
	Rayhan
</p>
]]></description><guid isPermaLink="false">45433</guid><pubDate>Thu, 30 Apr 2026 01:41:42 +0000</pubDate></item><item><title>SVG animation with masked PNG textures drops to 2 FPS on Safari iOS &#x2014; how to force GPU compositing?</title><link>https://gsap.com/community/forums/topic/45431-svg-animation-with-masked-png-textures-drops-to-2-fps-on-safari-ios-%E2%80%94-how-to-force-gpu-compositing/</link><description><![CDATA[<p>
	I'm running into a severe performance issue on Safari iOS with a GSAP-animated SVG and hoping someone has hit this before. What I'm building A dental treatment visualization where patients see their diagnosis and treatment plan animated step by step. Each "tooth" is an SVG element made up of masked RGBA PNG textures exported from Figma — essentially a pattern fill clipped by a mask path, one per tooth per animation layer. Stack:
</p>

<ul>
	<li>
		Next.js 15, React 19
	</li>
	<li>
		GSAP 3.14.2
	</li>
	<li>
		SVG ~11MB, ~820 embedded <code>data:image/png;base64</code> elements
	</li>
	<li>
		17 animation layers × 32 teeth = ~544 <code>&lt;g&gt;</code> elements in the DOM
	</li>
	<li>
		<p>
			GSAP timeline animates <code>autoAlpha</code>
		</p>

		<ul>
			<li>
				optional <code>y</code>/<code>scale</code> on individual elements The problem On Chrome (desktop + Android): 55–60 FPS, buttery smooth. On Safari iOS (iPhone 11–13): 2 FPS. Essentially frozen. The FPS drop happens the moment the SVG is in the DOM — even before the animation plays. Every <code>autoAlpha</code> change seems to trigger a full CPU re-composite of the entire SVG including all the masked PNG layers. What I've already tried Based on the docs and community posts I've gone through:
			</li>
		</ul>

		<p>
			 
		</p>
	</li>
	<li>
		<span class="ipsEmoji">✅</span> Using <code>autoAlpha</code> instead of bare <code>opacity</code>
	</li>
	<li>
		<span class="ipsEmoji">✅</span> Avoided <code>transformBox: "fill-box"</code> (known Safari SVG issue)
	</li>
	<li>
		<span class="ipsEmoji">✅</span> Hardcoded <code>transformOrigin: "50% 50%"</code> on all animated elements
	</li>
	<li>
		<span class="ipsEmoji">✅</span> Killing and rebuilding the timeline on each play
	</li>
	<li>
		<span class="ipsEmoji">✅</span> <code>translateZ(0)</code>
		<ul>
			<li>
				<code>will-change: transform</code> on the SVG container div → broke mask rendering on Safari, reverted
			</li>
		</ul>
	</li>
	<li>
		<span class="ipsEmoji">✅</span> <code>ResizeObserver</code> debouncing
	</li>
	<li>
		<span class="ipsEmoji">✅</span> Module-level SVG cache (so it's only fetched/parsed once per session)
	</li>
	<li>
		<span class="ipsEmoji">✅</span> <code>DocumentFragment</code> for batch DOM insertion of tooth wrappers None of these moved the needle on FPS during playback. Root cause hypothesis Safari's SVG renderer doesn't promote individual <code>&lt;g&gt;</code> elements to compositor layers the way Chrome does. When GSAP updates <code>opacity</code> (via <code>autoAlpha</code>) on any element inside the SVG, Safari re-paints the entire SVG on the CPU — including compositing all 820 RGBA PNG textures through their mask paths. With 544 elements potentially changing per frame, this is catastrophic on mobile. Chrome appears to isolate painted layers more aggressively, which is why it handles this fine. Questions
	</li>
	<li>
		Does <code>force3D</code> do anything for SVG elements? I know <code>force3D: true</code> promotes HTML elements to their own compositor layer via <code>matrix3d</code>. Does this have any equivalent effect inside an SVG context, or is it HTML-only?
	</li>
	<li>
		Is there a GSAP pattern for GPU-accelerating SVG element opacity on Safari? Something like animating a CSS custom property that drives the opacity, or wrapping elements in a <code>&lt;foreignObject&gt;</code> to get HTML compositing behavior?
	</li>
	<li>
		Pre-render approach — has anyone done this? My current workaround attempt: build the GSAP timeline, seek to the end of each step, capture the SVG to <code>ImageBitmap</code> via XMLSerializer → Blob → canvas, then play back by crossfading pre-rendered bitmaps on a <code>&lt;canvas&gt;</code>. This removes the SVG from the render path entirely during playback. Has anyone shipped something like this? Any gotchas I should know about with GSAP <code>.seek()</code>
		<ul>
			<li>
				<code>suppressEvents</code>?
			</li>
		</ul>
	</li>
	<li>
		Alternative: animate a parent HTML wrapper instead of SVG elements? Would wrapping each tooth's <code>&lt;g&gt;</code> group in a positioned HTML <code>div</code> (via <code>foreignObject</code> or restructuring the SVG) and animating the div let Safari use its normal HTML compositor pipeline? Minimal reproduction Happy to put together a CodePen/StackBlitz if it helps. The core issue is reproducible with any SVG that has 500+ masked RGBA PNG elements and GSAP animating opacity on them simultaneously. Any insight appreciated — this has been a tough one to crack.<br />
		<br />
		example animaton url <span>: </span><a href="https://plan.lemaclinic.com/animation/60ahoekuy9eatji?plan=39fa1v0pa92zxp2" rel="external nofollow">https://plan.lemaclinic.com/animation/60ahoekuy9eatji?plan=39fa1v0pa92zxp2</a><br />
		If you try this on Safari or Apple mobile phones, you will experience significant performance issues, but it works flawlessly on other browsers.<br />
		Thanks
	</li>
</ul>
]]></description><guid isPermaLink="false">45431</guid><pubDate>Tue, 28 Apr 2026 07:53:15 +0000</pubDate></item><item><title>Overall device issue (specific iPhone) using GSAP</title><link>https://gsap.com/community/forums/topic/45430-overall-device-issue-specific-iphone-using-gsap/</link><description><![CDATA[<p>
	I have no code demo, because I have a more overall issue.<br />
	<br />
	GSAP is greatly integrated in Webflow. I tested the animations out. Works perfect on almost all modern devices &amp; browsers, through my experiments.<br />
	<br />
	Only, one exception: iPhone 11. Both Safari browser &amp; Chrome browser.<br />
	<br />
	All tested animations, like page load animations, on click animations, don't do anything, on iPhone 11. And many people use that iPhone, since the latest iOS still runs on that phone.<br />
	<br />
	Solution?? <span><img alt=":)" data-emoticon="" height="20" src="https://gsap.com/community/uploads/emoticons/default_smile.png" srcset="https://gsap.com/community/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>
]]></description><guid isPermaLink="false">45430</guid><pubDate>Mon, 27 Apr 2026 19:06:49 +0000</pubDate></item><item><title>SplitText paragraph line-height change on line split</title><link>https://gsap.com/community/forums/topic/45429-splittext-paragraph-line-height-change-on-line-split/</link><description><![CDATA[<p>
	running SplitText.create for lines on an HTML paragraph seems to arbitrarily increase it's line-height - this doesn't occur with text outside &lt;p&gt; tags. removing all css produces the same result, so i'm pretty sure it's on SplitText's end. any help is greatly appreciated!
</p>

<p>
	(for some reason the codepen preview doesn't seem to be working, here's the link: https://codepen.io/editor/paramagnetism/pen/019dcfab-76bc-73fb-90d5-adff145182d1)
</p>




<p data-height="450" data-slug-hash="019dcfab-76bc-73fb-90d5-adff145182d1" data-user="editor" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/editor/paramagnetism/pen/019dcfab-76bc-73fb-90d5-adff145182d1'>019dcfab-76bc-73fb-90d5-adff145182d1</a> by editor (<a href='https://codepen.io/editor'>@editor</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45429</guid><pubDate>Mon, 27 Apr 2026 16:16:39 +0000</pubDate></item><item><title>Animation stutter and FPS drops in ScrollTrigger when running background automation tools</title><link>https://gsap.com/community/forums/topic/45426-animation-stutter-and-fps-drops-in-scrolltrigger-when-running-background-automation-tools/</link><description><![CDATA[<p>
	Hi everyone,
</p>

<p>
	I’m working on a project with some fairly heavy ScrollTrigger animations and complex timelines, but I’ve hit a snag where my once-smooth 60 FPS animations are starting to "jank" and drop frames significantly.
</p>

<p>
	I’ve been using a
	
	<span style="font-size:16px;"><span><a href="http://deltaexeutor.com/" rel="external nofollow">deltaexeutor</a></span></span> community setup to handle some automated data logging and local script execution in the background while I develop. I’ve noticed that whenever the background executor starts a processing cycle, my GSAP animations—especially those using <code>scrub: true</code>—become very jerky. It feels like the background process is competing for the same CPU threads that the browser needs for the <code>requestAnimationFrame</code> ticks, or perhaps it's causing enough main-thread activity to delay the render cycle.
</p>

<p>
	I have a few related technical questions for the animation experts here:
</p>

<p>
	I’m not sure if the way a <b>deltaexeutor</b> style environment manages its internal threading is interfering with the browser’s ability to prioritize the GSAP tick. Has anyone else encountered performance bottlenecks or "jank" while running high-level script executors alongside their dev environment? I’m also wondering if I should try using <code>gsap.ticker.fps(30)</code> to see if a lower cap helps stability, or if there's a better way to ensure the browser gives more weight to the animation thread when background automation is active.
</p>

<p>
	I really need to keep this automation active while I build out the site, but the stuttering makes it impossible to fine-tune my eases and durations. If anyone has experience optimizing a workstation for concurrent usage of heavy script executors and high-performance GSAP animations, I’d love to hear your advice!
</p>

<p>
	Thanks!
</p>
]]></description><guid isPermaLink="false">45426</guid><pubDate>Sat, 25 Apr 2026 16:07:49 +0000</pubDate></item><item><title>ScrollTrigger SVG scale animation flickers / disappears when using will-change: transform on parent</title><link>https://gsap.com/community/forums/topic/45425-scrolltrigger-svg-scale-animation-flickers-disappears-when-using-will-change-transform-on-parent/</link><description><![CDATA[<p>
	Hi,<br />
	 
</p>

<p>
	The SVG scale animation itself works perfectly fine. I’m using ScrollTrigger with pin and scrub, and the SVG smoothly scales from a large value down to its normal size while scrolling, with a video background behind it.
</p>

<p>
	However, the problem starts when I add the following CSS to improve scroll performance in my real project:
</p>

<pre>
 </pre>

<div>
	<div>
		<div>
			<div>
				<div>
					<div>
						<div>
							<div>
								<div>
									<div>
										<div dir="ltr">
											<div>
												<div>
													<span>#</span><span>smooth-content</span><span> {</span><br />
													<span>will-change: </span><span>transform</span><span>;</span><br />
													<span>}</span>
												</div>
											</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>

			<div>
				<div>
					 
				</div>
			</div>
		</div>
	</div>
</div>

<p>
	As soon as I enable this, the SVG animation starts to behave incorrectly. It begins to flicker, and in some cases it even disappears or fails to render properly during scroll. Removing <code>will-change: transform</code> immediately fixes the issue and the animation becomes stable again.
</p>

<p>
	The reason I’m trying to use <code>will-change: transform</code> is that without it, the rest of the page content (especially text elements) becomes jittery and vibrates during scrolling. This seems to be related to the smooth scroll setup in my real project.
</p>

<p>
	Interestingly, this issue does not appear in Safari. It only happens in Chrome and Brave (Chromium-based browsers).
</p>




<p data-height="450" data-slug-hash="ogzKYEW" data-user="SZENTIOSZ-the-SZAMOSZ" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/SZENTIOSZ-the-SZAMOSZ/pen/ogzKYEW'>ogzKYEW</a> by SZENTIOSZ-the-SZAMOSZ (<a href='https://codepen.io/SZENTIOSZ-the-SZAMOSZ'>@SZENTIOSZ-the-SZAMOSZ</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45425</guid><pubDate>Sat, 25 Apr 2026 09:58:56 +0000</pubDate></item><item><title>Marquee Border implementation issues with Vue SSG</title><link>https://gsap.com/community/forums/topic/45423-marquee-border-implementation-issues-with-vue-ssg/</link><description><![CDATA[<p>
	After days of work and teamwork with my FE friends, we built this marquee "border" that moves a copied phrase clockwise around the border of a div. We hoped to implement it in our current project, but moving it from codepen -&gt;  a static vue/Nuxt SSG site (with typescript) has proven too much to handle. Our implementation isn't even rendering the text in their correct starting positions (see image, text is not animating, either). I assume I'm missing something with load/Mount timing, but I have yet to find a solution. If anyone has any tips for implementing/debugging similar GSAP animations into a vue static/nuxt ssg project, I am all ears. Thank you so much for your time! - A struggling junior FS dev
</p>

<p><a href="https://gsap.com/community/uploads/monthly_2026_04/Screenshot2026-04-23at4_30_07PM.png.98a592ec2639f0e268340405cd92f351.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="14902" src="https://gsap.com/community/uploads/monthly_2026_04/Screenshot2026-04-23at4_30_07PM.thumb.png.3da4377d59816f36ee54abf0a52cd68f.png" data-ratio="63.9" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2026-04-23 at 4.30.07 PM.png"></a></p>



<p data-height="450" data-slug-hash="JoKNgdp" data-user="arossman0825" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/arossman0825/pen/JoKNgdp'>JoKNgdp</a> by arossman0825 (<a href='https://codepen.io/arossman0825'>@arossman0825</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45423</guid><pubDate>Thu, 23 Apr 2026 22:31:54 +0000</pubDate></item><item><title>Using a raw svg path as the target in a morphsvg</title><link>https://gsap.com/community/forums/topic/45422-using-a-raw-svg-path-as-the-target-in-a-morphsvg/</link><description><![CDATA[<p>
	I am attempting to make an svg animation in my nextjs app using GSAP and SimpleIcons wherin one programming language/utility logo morphs into another, and am concerned about the performance on lower-performance devices. Is there a way to, instead of passing the id of an svg path, pass the raw path of the svg as the target, as I don't want to have a 100mb homepage due to there being are a bunch of path elements in the html. I am using canvas drawing for performance reasons and flexibilities sake.
</p>
]]></description><guid isPermaLink="false">45422</guid><pubDate>Wed, 22 Apr 2026 19:06:36 +0000</pubDate></item><item><title>How to properly clear cached tweens after resize</title><link>https://gsap.com/community/forums/topic/44365-how-to-properly-clear-cached-tweens-after-resize/</link><description><![CDATA[<p>
	I’ve been using GSAP extensively to build a demo site for an upcoming app, and overall, I love it.
</p>

<p>
	However, I’m running into a major issue with window resizing—it completely throws off my animations.
</p>

<p>
	 
</p>

<p>
	Here’s a demo of the problem: 
</p>

<ol>
	<li>
		Scroll down to see the animation.
	</li>
	<li>
		Scroll back up to reset it.
	</li>
	<li>
		Resize the window.
	</li>
	<li>
		Scroll back down—now the animation is misaligned.
	</li>
</ol>

<p>
	 
</p>

<p>
	It looks like GSAP is caching the tween values and not re-evaluating my dynamic x/y functions on restart. I’ve tried multiple approaches to fix this, but nothing has worked so far.
</p>

<p>
	Any ideas?
</p>




<p data-height="450" data-slug-hash="gbOdXqR" data-user="Nir-Dil" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/Nir-Dil/pen/gbOdXqR'>gbOdXqR</a> by Nir-Dil (<a href='https://codepen.io/Nir-Dil'>@Nir-Dil</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">44365</guid><pubDate>Thu, 27 Mar 2025 13:51:51 +0000</pubDate></item><item><title>Per property easing?</title><link>https://gsap.com/community/forums/topic/45418-per-property-easing/</link><description><![CDATA[<p>
	 
</p>

<p>
	Like I said in the other thread, I've just discovered gsap "keyframes" and am loving it. That got me thinking: Often I find myself in a spot where I want a specific property to have a different easing, which always required to split it into multiple tweens, which I then usually bundled in a timeline to treat it as one single tween again (reliable onComplete, one single source of truth for pausing and progress manipulation etc.)
</p>

<p>
	 
</p>

<p>
	A simple example is moving an element in an arc. Instead of defining a path it follows, you can create the same effect by having different eases for the x and y axis.
</p>

<p>
	 
</p>

<p>
	While you can get the same duration per "sub tween" by using defaults for the timeline, you'd still have to set the position `.to(..., 0)` by hand for every sub tween. 
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">// works, but feels overly verbose and quirky
const tl = gsap.timeline({
  defaults: {
    duration: 0.378,
  }
})
.to(myElem, {
  x: 200,
  ease: 'power2.out',
}, 0)
.to(myElem, {
  y: 200,
  ease: 'power2.in', // ! in
}, 0)</span></pre>

<p>
	 
</p>

<p>
	What if you could do something like this?
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pln">gsap</span><span class="pun">.</span><span class="pln">to</span><span class="pun">(</span><span class="pln">myElem</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.378</span><span class="pun">,</span><span class="pln"> 
  x</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    value</span><span class="pun">:</span><span class="pln"> </span><span class="lit">200</span><span class="pun">,</span><span class="pln">
    ease</span><span class="pun">:</span><span class="pln"> </span><span class="str">'power2.out'</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"> </span><span class="pun">{</span><span class="pln">
    value</span><span class="pun">:</span><span class="pln"> </span><span class="lit">200</span><span class="pun">,</span><span class="pln">
    ease</span><span class="pun">:</span><span class="pln"> </span><span class="str">'power2.in'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// ! in</span><span class="pln">
  </span><span class="pun">},</span><span class="pln">
  </span><span class="com">// ... more properties all sharing the same "main ease"</span><span class="pln">
</span><span class="pun">})</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">45418</guid><pubDate>Mon, 20 Apr 2026 14:39:02 +0000</pubDate></item><item><title>How to create a random staggered INCREMENT cleanly?</title><link>https://gsap.com/community/forums/topic/45417-how-to-create-a-random-staggered-increment-cleanly/</link><description><![CDATA[<p>
	I'm building a simple typewriter effect and wanted to make it more organic by introducing some variance in the time it takes to "write each character". I've been discovering so many quality of life improvements lately (finally on a project again where I can geek out about animation!) – keyframes, gsap context, selector func (q), now very recently easeReverse (!) ... I could go on and am just having a blast!
</p>

<p>
	 
</p>

<p>
	That got me thinking though if there's a cleaner way to do a <strong>random increment</strong> to each characters stagger. So sometimes it takes 0.2 seconds, sometimes 0.3, sometimes 0.1. 
</p>

<p>
	 
</p>

<p>
	Probably a quick one for the pros amongst you <span><img alt=":)" data-emoticon="" height="20" src="https://gsap.com/community/uploads/emoticons/default_smile.png" srcset="https://gsap.com/community/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>

<p>
	<span>Thanks in advance for the replies!</span>
</p>

<p>
	 
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="com">// not really sexy to use a local counter variable</span><span class="pln">
</span><span class="kwd">let</span><span class="pln"> stagger </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">

gsap</span><span class="pun">.</span><span class="kwd">from</span><span class="pun">(</span><span class="pln">split</span><span class="pun">.</span><span class="pln">chars</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="pun">,</span><span class="pln">
  ease</span><span class="pun">:</span><span class="pln"> </span><span class="str">"steps(1)"</span><span class="pun">,</span><span class="pln">
  </span><span class="com">// how to recreate this without mutating a stagger variable?</span><span class="pln">
  stagger</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    stagger </span><span class="pun">+=</span><span class="pln"> gsap</span><span class="pun">.</span><span class="pln">utils</span><span class="pun">.</span><span class="pln">random</span><span class="pun">(</span><span class="lit">0.05</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0.25</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> stagger</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>
	 
</p>

<p>
	PS: Are there any plans for the easing string function to support `steps(1, end)` and `steps(1, start)`?
</p>




<p data-height="450" data-slug-hash="JoRVvEG" data-user="katerlouis" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/katerlouis/pen/JoRVvEG'>JoRVvEG</a> by katerlouis (<a href='https://codepen.io/katerlouis'>@katerlouis</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45417</guid><pubDate>Mon, 20 Apr 2026 14:20:11 +0000</pubDate></item><item><title>Beginner Reverse Ease Question (Again..)</title><link>https://gsap.com/community/forums/topic/33456-beginner-reverse-ease-question-again/</link><description><![CDATA[<p>
	Greetings, and salutations!<br /><br />
	I hope this day finds you well!<br /><br />
	So, I'm still plodding away with JS and GSAP, and I'm a little stuck in the mud on a simple issue; dealing with an <code>ease</code> in reverse. I've seen a lot of solutions in the forums, but haven't been able to implement one that works (which can only be attributed to the gaps in my current knowledge).<br /><br />
	Would anyone be kind enough to take a peek at what I'm doing, and perhaps point me in the right direction?<br /><br />
	Nothing too complicated please (if possible). I'm still experiencing difficulties getting my head around JS and GSAP.<br /><br />
	Kind regards,<br /><br />
	X
</p>




<p data-height="450" data-slug-hash="RwMepLO" data-user="scottonanski" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/scottonanski/pen/RwMepLO'>RwMepLO</a> by scottonanski (<a href='https://codepen.io/scottonanski'>@scottonanski</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">33456</guid><pubDate>Sun, 14 Aug 2022 20:04:35 +0000</pubDate></item><item><title>Different easing for reverse()</title><link>https://gsap.com/community/forums/topic/18700-different-easing-for-reverse/</link><description><![CDATA[
<p>
	I did an animation timeline for a sliding menu. It works fine, however,  doing a reverse easing (when the menu slides back) seems a bit slow.  I'd like to make it go faster or just change the easing to a regular Power0.ease on reverse. 
</p>

<p>
	 
</p>

<div style="background-color:#1e1e1e;color:#d4d4d4;font-size:14px;">
	<div>
		<div style="background-color:#1e1e1e;color:#d4d4d4;font-size:14px;">
			<div>
				<span style="color:#dcdcaa;">$</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">'#menu'</span><span style="color:#d4d4d4;">).</span><span style="color:#dcdcaa;">click</span><span style="color:#d4d4d4;">(</span><span style="color:#569cd6;">function</span><span style="color:#d4d4d4;"> () {</span>
			</div>

			<div>
				<span style="color:#dcdcaa;">$</span><span style="color:#d4d4d4;">(</span><span style="color:#569cd6;">this</span><span style="color:#d4d4d4;">).</span><span style="color:#dcdcaa;">toggleClass</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">'open'</span><span style="color:#d4d4d4;">);</span>
			</div>

			<div>
				<span style="color:#c586c0;">if</span><span style="color:#d4d4d4;"> (</span><span style="color:#dcdcaa;">$</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">'#menu'</span><span style="color:#d4d4d4;">).</span><span style="color:#dcdcaa;">hasClass</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">'open'</span><span style="color:#d4d4d4;">)) {</span>
			</div>

			<div>
				<span style="color:#9cdcfe;">tlMenu</span><span style="color:#d4d4d4;">.</span><span style="color:#dcdcaa;">restart</span><span style="color:#d4d4d4;">();</span>
			</div>

			<div>
				<span style="color:#d4d4d4;">} </span><span style="color:#c586c0;">else</span><span style="color:#d4d4d4;"> {</span>
			</div>

			<div>
				<span style="color:#9cdcfe;">tlMenu</span><span style="color:#d4d4d4;">.</span><span style="color:#dcdcaa;">reverse</span><span style="color:#d4d4d4;">();</span>
			</div>

			<div>
				<span style="color:#d4d4d4;">}</span>
			</div>

			<div>
				<span style="color:#d4d4d4;">});</span>
			</div>
		</div>
	</div>

	<div>
		 
	</div>

	<div>
		<span style="color:#9cdcfe;">tlMenu</span><span style="color:#d4d4d4;">.</span><span style="color:#dcdcaa;">to</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">'.swiper-container'</span><span style="color:#d4d4d4;">, </span><span style="color:#b5cea8;">1</span><span style="color:#d4d4d4;">, { </span><span style="color:#9cdcfe;">css:</span><span style="color:#d4d4d4;"> { </span><span style="color:#9cdcfe;">marginLeft:</span><span style="color:#d4d4d4;"> </span><span style="color:#ce9178;">"45%"</span><span style="color:#d4d4d4;"> }, </span><span style="color:#9cdcfe;">ease:</span><span style="color:#d4d4d4;"> </span><span style="color:#9cdcfe;">Expo</span><span style="color:#d4d4d4;">.</span><span style="color:#9cdcfe;">easeOut</span><span style="color:#d4d4d4;"> })</span>
	</div>

	<div>
		<span style="color:#d4d4d4;">.</span><span style="color:#dcdcaa;">staggerFrom</span><span style="color:#d4d4d4;">(</span><span style="color:#ce9178;">"#menu li"</span><span style="color:#d4d4d4;">, </span><span style="color:#b5cea8;">0.5</span><span style="color:#d4d4d4;">, { </span><span style="color:#9cdcfe;">opacity:</span><span style="color:#d4d4d4;"> </span><span style="color:#b5cea8;">0</span><span style="color:#d4d4d4;">, </span><span style="color:#9cdcfe;">x:</span><span style="color:#d4d4d4;"> </span><span style="color:#d4d4d4;">-</span><span style="color:#b5cea8;">200</span><span style="color:#d4d4d4;">, </span><span style="color:#9cdcfe;">ease:</span><span style="color:#d4d4d4;"> </span><span style="color:#9cdcfe;">Back</span><span style="color:#d4d4d4;">.</span><span style="color:#9cdcfe;">easeIn</span><span style="color:#d4d4d4;"> }, </span><span style="color:#b5cea8;">0.1</span><span style="color:#d4d4d4;">, </span><span style="color:#ce9178;">'-=1.2'</span><span style="color:#d4d4d4;">);</span>
	</div>

	<div>
		<span style="color:#9cdcfe;">tlMenu</span><span style="color:#d4d4d4;">.</span><span style="color:#dcdcaa;">pause</span><span style="color:#d4d4d4;">();</span>
	</div>
</div>

<p>
	 
</p>

<p>
	This is a great forum. I appreciate the help from last time and thank you GSAP peeps in advance <span><img alt=":)" data-emoticon="" height="20" src="https://gsap.com/community/uploads/emoticons/default_smile.png" srcset="https://gsap.com/community/uploads/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>

<div style="background-color:#1e1e1e;color:#d4d4d4;font-size:14px;">
	 
</div>
]]></description><guid isPermaLink="false">18700</guid><pubDate>Tue, 17 Jul 2018 14:28:29 +0000</pubDate></item><item><title>How-to apply different easing of animation normal and reverse</title><link>https://gsap.com/community/forums/topic/9229-how-to-apply-different-easing-of-animation-normal-and-reverse/</link><description><![CDATA[
<p>Hey guys, I'm playing a bit with GSAP to use for my future website. Gonna drop Snapsvg and only use jQuery along with GSAP. I was wondering how I could ease an animation in reverse differently? So let's say anim.play() will use ease:Elastic.easeInOut and the reverse() would use eg. ease:power1.easeOut. Is this possible?</p>
<p> </p>
<p>Here is a code-axample which I'm currently playing with;</p>
<pre class="ipsCode prettyprint">
var animateThumbs = function() {
	var $anchors 		= $( 'div.col-md-4' ).children( 'a' ),
		ellipse 		= $($anchors[0]).find( 'ellipse'),
		duration		= .25,
		ellipseProps	= {
			from: {
				cy: ellipse.attr('cy'),
				rx: ellipse.attr('rx'),
				ry: ellipse.attr('ry')
			},
			to: {
				cy: -500,
				rx: 625,
				ry: 725
			}
		};

	//Let's set on every a-element a timeline as method
		$anchors.each( function(index, elem) {

		var ellipse 	= $(elem).find( 'ellipse' ),
			animateSvgBG= new TimelineMax({repeat: 0, paused: true });

		animateSvgBG.fromTo(ellipse, duration,
				//from
				{ attr: { 
					cy: ellipseProps.from.cy,
					rx: ellipseProps.from.rx,
					ry: ellipseProps.from.ry
				}},
				//to
				{ attr: { 
					cy: ellipseProps.to.cy,
					rx: ellipseProps.to.rx,
					ry: ellipseProps.to.ry
				}}
			);
		//animateSvgBG.to(ellipse, 1, { attr: { cy: ellipseProps.from.cy, rx: ellipseProps.from.rx, ry: ellipseProps.from.ry }}, "fadeOut");

		//labelsArray = animateSvgBG.getLabelsArray();
		//console.info(labelsArray);
		elem.animate = animateSvgBG;
	})

	$anchors.on({
		mouseenter: function(event) {
			// from "fadeIn" to "fadeOut"
			//TweenMax.fromTo(animateSvgBG, duration, {time:labelsArray[0].time}, {time:labelsArray[1].time});
			//console.info( "animateSvgBg: " +  animateSvgBG, " labelsArray[0].time: " + labelsArray[0].time, " labelsArray[1].time: " + labelsArray[1].time );
			this.animate.play();
		},
		mouseleave: function(event) {													
			// nfrom "fadeOut" to "fadeIn"
			//TweenMax.fromTo(animateSvgBG, duration, {time:labelsArray[1].time, ease:Ease.easeOut}, {time:labelsArray[0].time}); 
			this.animate.reverse();
		}	
	})
}	
</pre>
]]></description><guid isPermaLink="false">9229</guid><pubDate>Sat, 22 Mar 2014 14:14:42 +0000</pubDate></item><item><title>ScrollTrigger pinning: shrinking pinned section causes extra space at the end of the pinned section or create layout gaps</title><link>https://gsap.com/community/forums/topic/45416-scrolltrigger-pinning-shrinking-pinned-section-causes-extra-space-at-the-end-of-the-pinned-section-or-create-layout-gaps/</link><description><![CDATA[<h2>
	<span style="font-size:16px;">I’m using GSAP with ScrollTrigger to pin a section and animate its content out (moving headings upward and fading them out).</span>
</h2>

<p>
	<span style="font-size:16px;">I’m working with GSAP and ScrollTrigger to create a scroll-based animation where elements inside a pinned section are progressively moved/hidden.</span>
</p>

<p>
	<span style="font-size:16px;">The goal is:</span>
</p>

<ul>
	<li>
		<span style="font-size:16px;">Pin a section (<em>#div1</em>)</span>
	</li>
	<li>
		<span style="font-size:16px;">Animate headings out (move up / fade out) (<em>#heading1, #heading2</em>)</span>
	</li>
	<li>
		<span style="font-size:16px;">Naturally reduce the section height of the pinned section as content disappears</span>
	</li>
</ul>

<p>
	<span style="font-size:16px;">However, the issue I’m facing is:</span>
</p>

<p>
	<span style="font-size:16px;">When the section is pinned, its height seems to be <strong>locked</strong>, and even after I move elements out of view (using negative margins and opacity), the section <strong>does not shrink</strong>.</span>
</p>

<p>
	<span style="font-size:16px;">This results in <strong>extra empty space</strong> inside the section but after the content of that section.</span><br />
	 
</p>

<h2>
	<span style="font-size:18px;">What I’m trying to achieve</span>
</h2>

<ul>
	<li>
		<span style="font-size:16px;">As elements are removed/moved out, I want the <strong>parent section (<code>#div1</code>) to shrink accordingly</strong></span>
	</li>
	<li>
		<span style="font-size:16px;">The next section (<code>#div2</code>) should <strong>move up naturally without gaps</strong></span>
	</li>
</ul>

<p>
	<span style="font-size:18px;">What I’ve noticed</span>
</p>

<ul>
	<li>
		<span style="font-size:16px;">With </span><code>pin: true,</code><span style="font-size:16px;"> ScrollTrigger seems to <strong>maintain the original height</strong></span>
	</li>
	<li>
		<span style="font-size:16px;">Even if content (<em>#heading1</em>) visually disappears, the layout space remains</span>
	</li>
	<li>
		<span style="font-size:16px;">If I disable <code>pinSpacing</code>, the next section gets hidden underneath the pinned section</span>
	</li>
</ul>

<h2>
	<span style="font-size:18px;">Additional Issue</span>
</h2>

<p>
	<span style="font-size:16px;">I also tried manually reducing the height of <code>#div1</code> while the animations are happening (based on the amount of content being removed).</span>
</p>

<p>
	<span style="font-size:16px;">However, when I reduce the height dynamically, it creates a <strong>blank space between <code>#div1</code> and <code>#div2</code></strong></span>
</p>

<p>
	<span style="font-size:16px;">So I end up with:</span>
</p>

<ul>
	<li>
		<span style="font-size:16px;">Either <strong>extra space (default pin behavior)</strong></span>
	</li>
	<li>
		<span style="font-size:16px;">Or <strong>layout gaps when manually adjusting height</strong></span>
	</li>
</ul>

<h2>
	 
</h2>

<p>
	What is the <strong>recommended approach</strong> to:
</p>

<ol>
	<li>
		Dynamically reduce the height of a pinned section based on content changes
	</li>
	<li>
		Avoid extra spacing caused by pinning
	</li>
	<li>
		Keep the layout behaving naturally with following sections
	</li>
</ol>




<p data-height="450" data-slug-hash="MYjxoMd" data-user="anmadwa" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://codepen.io/anmadwa/pen/MYjxoMd'>MYjxoMd</a> by anmadwa (<a href='https://codepen.io/anmadwa'>@anmadwa</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">45416</guid><pubDate>Fri, 17 Apr 2026 16:42:02 +0000</pubDate></item><item><title>GSAP "filter:blur" animation is super glitchy on first load only (Chrome browser).</title><link>https://gsap.com/community/forums/topic/25616-gsap-filterblur-animation-is-super-glitchy-on-first-load-only-chrome-browser/</link><description><![CDATA[
<p>
	The blur animation on the peach coloured text is super glitchy when you visit the website for the first time only (Chrome browser).<br /><a href="https://witnessestohistory.museeholocauste.ca/" rel="external nofollow">https://witnessestohistory.museeholocauste.ca/</a><br /><br />
	You can recreate the issue by visiting in "Incognito mode", or clearing your cache.<br /><br />
	If you refresh your browser or visit another page, the same animation runs super smoothly.<br /><br />
	My current animation setting is :<br />
	 
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted">
<span class="kwd">this</span><span class="pun">.</span><span class="pln">tl</span><span class="pun">.</span><span class="pln">staggerFromTo</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">[</span><span class="pln">splitKey</span><span class="pun">],</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">duration</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> css</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="lit">0</span><span class="pun">,</span><span class="pln"> scale</span><span class="pun">:</span><span class="lit">1.3</span><span class="pun">,</span><span class="pln"> filter</span><span class="pun">:</span><span class="str">"blur(10px)"</span><span class="pun">,</span><span class="pln"> z</span><span class="pun">:</span><span class="lit">0</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"> css</span><span class="pun">:</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> opacity</span><span class="pun">:</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> scale</span><span class="pun">:</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> filter</span><span class="pun">:</span><span class="str">"blur(0px)"</span><span class="pun">,</span><span class="pln"> z</span><span class="pun">:</span><span class="lit">0</span><span class="pln"> </span><span class="pun">},</span><span class="pln"> ease</span><span class="pun">:</span><span class="kwd">this</span><span class="pun">.</span><span class="pln">easing</span><span class="pun">},</span><span class="pln"> </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">stagger</span><span class="pun">[</span><span class="pln">splitKey</span><span class="pun">]);</span></pre>

<p>
	<br />
	I have tried all of the following :<br /><br />
	- <strong>this.tl.progress(1).progress(0);</strong> (before playing my timeline)<br />
	- <strong>z:0.01</strong><br />
	- <strong>backface-visibility: hidden</strong><br />
	- <strong>will-change: transform, filter</strong><br />
	- <strong>-webkit-font-smoothing: subpixel-antialiased</strong><br />
	- <strong>gsap.set(this[splitKey], { force3D:true })</strong><br />
	- Adding a huge delay before the animation starts to prevent overlapping of effects / images loading<br />
	- Adding page cache<br />
	- Adding a "loader" with a blur animation out to prepare the GPU for the effect, since it seems to run smoothly the second time (didn't work)
</p>




<p data-height="450" data-slug-hash="" data-user="" class='codepen' data-tab-bar-color="#222" data-default-tab="html,result">
    <span>See the Pen <a href='https://witnessestohistory.museeholocauste.ca/'></a> by  (<a href='https://codepen.io/'>@</a>) on <a href='https://codepen.io'>CodePen</a>.</span>
</p>

]]></description><guid isPermaLink="false">25616</guid><pubDate>Mon, 21 Sep 2020 15:48:40 +0000</pubDate></item><item><title>ScrollTrigger doesn't work for all elements</title><link>https://gsap.com/community/forums/topic/45413-scrolltrigger-doesnt-work-for-all-elements/</link><description><![CDATA[<p>
	First time question here, so I hope that I can get it right.
</p>

<p>
	 
</p>

<p>
	I'm trying to animate page areas to fade in when the page scrolls to them. I've got it mostly working but something is not quite right.
</p>

<p>
	 
</p>

<p>
	What happens is that there's 8 container elements on the page and the script gets these correctly. The first three or four work, but after that the rest just... don't do anything. Fro some elements the markers show up, but for other elements they don't and for other elements they aren't there at all (or might be hidden under something else).
</p>

<p>
	 
</p>

<p>
	The JS for this is:
</p>

<p>
	 
</p>

<p>
	<code>const ANIMATION_DELAY = 0.3;<br />
	const ANIMATION_DURATION = 1.2;</code>
</p>

<p>
	<code>let elements = gsap.utils.toArray ('.animate-scroll-fadein');<br />
	    <br />
	    elements.forEach ((item) =&gt; {<br />
	        let tl = gsap.timeline ({<br />
	            scrollTrigger: {<br />
	            trigger: item,<br />
	            start: 'top bottom-=50px',<br />
	            markers: true<br />
	        }<br />
	    });<br />
	        <br />
	    tl.from (item, {<br />
	        opacity: 0.3,<br />
	        delay: ANIMATION_DELAY,<br />
	        duration: ANIMATION_DURATION,<br />
	        ease: 'sine.out'<br />
	    });</code>
</p>

<p>
	<code>});</code>
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Is there anything that I'm missing with this? I feel like I'm doing something wrong.
</p>

<p>
	 
</p>

<p>
	If needed I can give an example URL where this is used, but I would prefer not to make that public as it's a work thing. <span>:)</span>
</p>
]]></description><guid isPermaLink="false">45413</guid><pubDate>Fri, 17 Apr 2026 01:25:44 +0000</pubDate></item></channel></rss>
