Comments (3)
Excellent! Glad it worked out. Thanks for letting us know.
from gsap.
Your CodeSandbox wouldn't even open for me, but I think I see what's going on - I created this Stackblitz instead:
https://stackblitz.com/edit/stackblitz-starters-p1ycqi?file=app%2Fpage.tsx,app%2Flayout.tsx
I think the fundamental problem is that you're technically using two different gsap objects - one module-based one that useGSAP() imports, and then a UMD one that Next.js defaults to using since it doesn't use modules by default (if I remember correctly - I'm not a Next.js guy). So the key is to make sure you gsap.registerPlugin(useGSAP, ScrollTrigger) BEFORE you use either one of those so that the useGSAP() is linked to the same gsap object as the rest of your stuff is using.
And Next.js complains about "style" being added to the (even though the style attribute is empty), thus you may need to clear it out right after registering:
gsap.registerPlugin(useGSAP, ScrollTrigger);
if (typeof document !== 'undefined') { // to avoid Next.js complaining
document.body.setAttribute('style', '');
document.body.removeAttribute('style');
}
It seems to work in that Stackblitz, right? Sorry about any confusion there. It's a very particular edge case where you're importing 2 different gsap objects and not registering them before using them.
from gsap.
Your CodeSandbox wouldn't even open for me, but I think I see what's going on - I created this Stackblitz instead: https://stackblitz.com/edit/stackblitz-starters-p1ycqi?file=app%2Fpage.tsx,app%2Flayout.tsx
I think the fundamental problem is that you're technically using two different gsap objects - one module-based one that useGSAP() imports, and then a UMD one that Next.js defaults to using since it doesn't use modules by default (if I remember correctly - I'm not a Next.js guy). So the key is to make sure you gsap.registerPlugin(useGSAP, ScrollTrigger) BEFORE you use either one of those so that the useGSAP() is linked to the same gsap object as the rest of your stuff is using.
And Next.js complains about "style" being added to the (even though the style attribute is empty), thus you may need to clear it out right after registering:
gsap.registerPlugin(useGSAP, ScrollTrigger); if (typeof document !== 'undefined') { // to avoid Next.js complaining document.body.setAttribute('style', ''); document.body.removeAttribute('style'); }It seems to work in that Stackblitz, right? Sorry about any confusion there. It's a very particular edge case where you're importing 2 different gsap objects and not registering them before using them.
Thank you. Your advices worked nice. To think that I missed such an important detail.... Since it worked fine in CodePen I was wondering if NextJS was the problem here but it appeared it was me who hadn't registered the two objets before using them. Many thanks to you GSAP' guy.
Happy tweening
from gsap.
Related Issues (20)
- code is missing closing bracket HOT 1
- Pixi Plugin for new PixiJS v8 HOT 7
- Documetation typo HOT 1
- v3.12.3 breaks positioning of scaled elements within inline svg HOT 2
- SplitText Elements with typescript HOT 2
- Promise.all dont resolve when overwrite HOT 2
- GSAP 3.12.3 and 3.12.4 break ScrollTrigger in latest Chrome HOT 4
- Flickering phenomenon in 3.12.4v HOT 2
- Negative gsap.ticker.time and timelines not playing HOT 4
- Production in vercel , module not found HOT 2
- Is it possible to use GSAP within a Web Worker? HOT 5
- Missing parameter for ScrollTrigger.clearScrollMemory in its TypeScript definition HOT 2
- requestAnimationFrame does not work on WebXR HOT 1
- What is the performance bottleneck of GSAP? HOT 1
- onStart callback is not called after pause HOT 6
- Gsap markers position not working on scroll+refresh | versions > 3.12.2 HOT 9
- GSAP ScrollTrigger causes error in Next.js HOT 3
- String values for motionPath array in Typescript HOT 1
- SSL certificate has expired HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gsap.