Logo

dev-resources.site

for different kinds of informations.

Today’s new knowledge #7(GSAP)

Published at
11/20/2024
Categories
webdev
gsap
animation
beginners
Author
kishor_sutradhar_d2503ac4
Categories
4 categories in total
webdev
open
gsap
open
animation
open
beginners
open
Author
25 person written this
kishor_sutradhar_d2503ac4
open
Today’s new knowledge #7(GSAP)

Today's Overview:

Hello again everyone ❤❤❤! Hope you're all doing well. Today, I decided to focus on front-end development and, as usual, started exploring YouTube for inspiration. I came across a video on creating website animations with GSAP, which caught my interest. I thought it would be a great opportunity to dive into GSAP and learn something new. Here's a summary of what I explored and learned today.

What is GSAP

GSAP (GreenSock Animation Platform) is a powerful JavaScript library for creating high-performance animations for the web. It’s widely used for animating DOM elements, SVG, canvas, WebGL, and more.

so the first concept I learn is Tween.

TWEEN

In GSAP, a tween is a single animation instance that animates a property or set of properties over time.
Methods like gsap.to(), gsap.from(), and gsap.fromTo() are used to create tweens.

gsap.to()

The gsap.to() method in GSAP is used to animate an element or object from its initial state to a specified state.It's one of the most commonly used methods in GSAP for creating smooth transitions. CSS properties Transforms, colors, padding, border radius, GSAP can animate it all! Just remember to camelCase the properties - e.g. background-color becomes backgroundColor.

gsap.to(".box", {
  duration: 1,    
// Animation lasts 1 second
  x: 200,         
// Moves the element 200px on the X-axis
  opacity: 0.5,   
// Fades the element to 50% opacity
});
Enter fullscreen mode Exit fullscreen mode

gsap.from()

The gsap.from() method in GSAP is used to animate an element or object from a defined starting state to its initial state. This is the opposite of gsap.to()

gsap.from(".box", {
  duration: 1.5,
  x: -200,    
// Starts 200px left of its original position
  opacity: 0, 
// Starts with 0% opacity
  ease: "power2.out" 
// Eases out to the current state
});

Enter fullscreen mode Exit fullscreen mode

gsap.fromTo()

The gsap.fromTo() method in GSAP is a versatile way to define both the starting (from) and ending (to) states of an animation.

gsap.fromTo(".box", 
  { x: -200, opacity: 0 }, 
// Starting state: off-screen to the left and invisible
  { x: 200,
 opacity: 1,
 duration: 2,
 ease: "power2.out" }
 // Ending state: on-screen and fully visible
);
Enter fullscreen mode Exit fullscreen mode

Here's a list of the shorthand transforms and some other commonly used properties.

Property Equivalent CSS Notes
x: 100 transform: translateX(100px) Moves element 100px along X-axis
y: 100 transform: translateY(100px) Moves element 100px along Y-axis
xPercent: 50 transform: translateX(50%) Moves element 50% along X-axis
yPercent: 50 transform: translateY(50%) Moves element 50% along Y-axis
scale: 2 transform: scale(2) Scales element by a factor of 2
scaleX: 2 transform: scaleX(2) Scales element's width by a factor of 2
scaleY: 2 transform: scaleY(2) Scales element's height by a factor of 2
rotation: 90 transform: rotate(90deg) Rotates element 90 degrees
rotation: "1.25rad" No CSS alternative Rotates element in radians
skew: 30 transform: skew(30deg) Skews element 30 degrees
skewX: 30 transform: skewX(30deg) Skews element along X-axis
skewY: "1.23rad" No CSS alternative Skews element along Y-axis in radians
transformOrigin: "center 40%" transform-origin: center 40% Sets origin for transformations
opacity: 0 Adjusts the element's opacity 0 for transparent, 1 for opaque
autoAlpha: 0 Shorthand for opacity & visibility 0 hides both visibility & opacity
duration: 1 animation-duration: 1s Sets animation duration to 1 second
repeat: -1 animation-iteration-count: infinite Animation repeats infinitely
repeat: 2 animation-iteration-count: 2 Animation repeats twice
delay: 2 animation-delay: 2 Animation starts after 2 seconds
yoyo: true animation-direction: alternate Animation alternates direction

gsap.timeline()

The gsap.timeline() method in GSAP allows you to sequence multiple animations in a controlled and coordinated manner. Using a timeline, you can precisely manage the timing and relationships between tweens, making it easier to create complex, synchronized animations.

let tl = gsap.timeline();

tl.to(".box", { x: 100, duration: 1 })
  .to(".circle", { y: 100, duration: 1 }, "-=0.5") // Starts 0.5s before the previous animation ends
  .to(".triangle", { rotation: 180, duration: 1 });

Enter fullscreen mode Exit fullscreen mode

Control Methods
play(): Starts or resumes the timeline.
pause(): Pauses the timeline.
restart(): Restarts the timeline from the beginning.
reverse(): Plays the timeline in reverse.
seek(): Jumps to a specific time in the timeline.
progress(): Sets or gets the progress of the timeline (0 to 1).

Those are the core concepts of GSAP there are also some plugins you can use. like

ScrollTrigger

ScrollTrigger is a GSAP plugin that allows you to trigger animations based on scroll position, creating interactive, scroll-based animations. It's perfect for building scroll-triggered effects like pinning, parallax, or section reveals.

gsap.to(".box", {
  scrollTrigger: {
    trigger: ".box",
    start: "top 75%", // Animation starts when the top of .box reaches 75% of the viewport
    end: "top 25%",   // Animation ends when the top of .box reaches 25% of the viewport
    scrub: true,      // Links the animation progress to scroll progress
    markers: true     // Shows markers for debugging
  },
  x: 200,
  rotation: 360,
  duration: 2
});

});

Enter fullscreen mode Exit fullscreen mode

Using GSAP in a React

First, install GSAP via npm or yarn:

npm install gsap
Enter fullscreen mode Exit fullscreen mode

useGsap hook

The useGsap hook, provided by the GSAP library, is a powerful tool for managing animations in React applications. It simplifies the process of creating and managing animations, ensuring proper cleanup and preventing potential issues.

import React, { useRef } from 'react';
import { useGsap } from '@gsap/react';
import gsap from 'gsap';

function MyComponent() {
  const ref = useRef(null);
  const { contextSafe } = useGsap();

  // Use contextSafe to ensure proper cleanup
  const animate = contextSafe(() => {
    gsap.to(ref.current, {
      x: 200,
      duration: 1,
      ease: 'power2.out'
    });
  });

  return (
    <div onClick={animate} ref={ref}>
      Hello, World!
    </div>
  );
}
Enter fullscreen mode Exit fullscreen mode

those are the things I learned today.

gsap Article's
30 articles in total
Favicon
How to improve the Frontend part of the project using one button as an example :))))
Favicon
Reflections on My Coding Journey: Lessons from Recent Weeks
Favicon
Circle Cursor Js #GSAP
Favicon
"Day 7 with GSAP: Interactive Scrolling Animation with Rotating Arrows"
Favicon
GSAP ScrollTrigger animation for Upwork Client Demo
Favicon
Day 6: Text Animation with GSAP – A Split Letter Magic! 🎨✨
Favicon
🚀 Day 5: Creating a Hamburger Menu with GSAP
Favicon
Day 4: Enhancing UX with a Custom Cursor Using GSAP 🚀🎨
Favicon
"Unlocking the Power of GSAP for Stunning Web Animations" 🎨✨
Favicon
Preloader Animation #GSAP
Favicon
GSAP: GreenSock Animation Platform 🚀
Favicon
Animated Carousel
Favicon
🚀 𝗧𝗵𝗲𝗥𝗲𝗮𝗹𝗛𝗼𝘁𝗲𝗹𝘀 🌟
Favicon
Clip-Path Circle Reveal Animation With Mouse Movement
Favicon
Getting started with Gsap!
Favicon
Today’s new knowledge #7(GSAP)
Favicon
Image Reveal Animation with HTML, CSS, and GSAP
Favicon
Easy React Animation with GSAP
Favicon
MoonAlert A CSS Animated Moon Notification Box
Favicon
Creating a Mesmerizing Moonlit Night Sky Animation with CSS
Favicon
🚀 Motion Scape With GSAP
Favicon
Pinning Images with GSAP: A Smooth Scrolling Animation in Next.js
Favicon
Learning GSAP with a Day-to-Night Scroll Animation 🌞🌜
Favicon
From Static to Stunning: Animate with GSAP
Favicon
Blurry Card with Parallax Effect 💳
Favicon
Fun Animation using GSAP
Favicon
Future Bank Fintech Green: The Intersection of Finance and Sustainabilit
Favicon
Framer ground.
Favicon
Parallax image scroll speed with Nuxt 3 and GSAP 🛣️✨
Favicon
Creating Interactive Hover Effects with GSAP and SplitType

Featured ones: