Jump to content
Search Community

Reginna

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by Reginna

  1. I want to make some animation with GSAP. Pin the section and run all animations for that section, fixed the section to the next section, then fade out in the third section (each section does the same logical animation). I use +=200% to fixed in the next section, but the animation is too fast. How can I use +=200% and +=5000 at the same time?
  2. I used GASP and ScrollTigger in the Next.js (React) project, and used very basic code. import { useState, useEffect, useRef } from 'react'; import gsap from 'gsap'; import { CSSRulePlugin } from 'gsap/dist/CSSRulePlugin'; import { ScrollTrigger } from 'gsap/dist/ScrollTrigger'; export default function SomePage() { const secRef = useRef(null); const titleRef = useRef(null); const imgBoxRef = useRef(null); const boxRef = useRef(null); useEffect(() => { if (typeof window !== "undefined") { gsap.registerPlugin(CSSRulePlugin, ScrollTrigger); } let tl = gsap.timeline({ scrollTrigger: { trigger: secRef.current, start: "top top", scrub: true, markers: true, pin: true } }); tl .fromTo(imgBoxRef.current, { opacity: 0, scale: 0.8 } ,{ opacity: 1, scale: 1, duration: 2 }) .fromTo(boxRef.current, { opacity: 0 }, { opacity: 1, duration: 0.5 }, '-=1') .fromTo(boxRef.current, { y: '150%', scale: 3 }, { y: '-50%', scale: 0.5, duration: 2 }, '-=1') .fromTo(titleRef.current, { opacity: 0 }, { opacity: 1, duration: 1 }, '-=1') .fromTo(imgBoxRef.current, { scale: 1 }, { scale: 1.5, duration: 1 }, '-=2') .fromTo(secRef.current, { y: 0 }, { x: '-80%', duration: 3 }, '+=1'); return () => tl.scrollTrigger.kill(); }, []); } But got warning Invalid property opacity set to 0 Missing plugin? gsap.registerPlugin() Invalid property y set to 150% Missing plugin? gsap.registerPlugin() Invalid property scale set to 3 Missing plugin? gsap.registerPlugin() How to fixed this warning? Do I get something wrong?
  3. I built the project animation with gsap on Nuxt.js and tried to analyze bundles. The size of gsap is bigger than other module. I tried two ways to build my project: // use dist import { gsap } from 'gsap/dist/gsap' import { ScrollTrigger } from 'gsap/dist/ScrollTrigger' import { ScrollToPlugin } from 'gsap/dist/ScrollToPlugin' // use normal import { gsap } from 'gsap' import { ScrollTrigger } from 'gsap/ScrollTrigger' import { ScrollToPlugin } from 'gsap/ScrollToPlugin' If I included ScrollTrigger.js and ScrollToPlugin.js, the size of gsap was around 31 KB. 1. 2. I tried to import gasp with gsap-core and got error: "gsap.utils.checkPrefix is not a function" // import gsap-core import { gsap } from 'gsap/gsap-core' The full code: import Vue from 'vue' // import { gsap } from 'gsap/gsap-core' import { gsap } from 'gsap/dist/gsap' import { ScrollTrigger } from 'gsap/dist/ScrollTrigger' import { ScrollToPlugin } from 'gsap/dist/ScrollToPlugin' // [START] className Plugin for Gsap v3 // Gsap v3 remove tween className add and remove. Gsap Official recommend use vanilla JavaScript: className.add() & className.remove() // Or use Plugin. Reference: https://codepen.io/GreenSock/pen/BaNRejV?editors=0010 // Try to use vanilla JavaScript add or remove class, non-essential to use this plugin. It is recommended to use stagger when you need it. const classNamePlugin = { ... } // [END] className Plugin for Gsap v3 if (process.client) { gsap.registerPlugin(ScrollTrigger, ScrollToPlugin, classNamePlugin) } Vue.prototype.$gsap = gsap Vue.prototype.$ScrollTrigger = ScrollTrigger Is it possible to import gsap in another way to reduce the size? --- gsap version: 3.5.1
×
×
  • Create New...