Interaction and animation always eye-pleasing to watch. If we talk about animation on the web nowadays browsers have good support for animation. Using some good animation and small interaction surely helps to gain more users to the websites. There are more libraries to animate the elements on the web. Today we are going see one of the popular javascript library called GSAP
The GreenSock Animation Platform (GSAP) is a powerful JavaScript library that enables front-end developers and designers to create robust timeline based animations. GSAP is used to animate each property individually, so you can scale, rotate, and move anything easily. And GSAP is flexible, so it’s a great choice for animating almost anything: CSS, SVG, DOM. Actually, you can use it anywhere JavaScript runs.
To add GSAP in your Project. You have to add this js to <script> tag before the closing </body> tag of your HTML document:
https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js
Or You can also add GSAP through npm dependency
npm install gsap
As GSAP 3 is introduced they have merged TimelineLite and TimelineMax property into a single property as gsap.
Today we are going to look at some of the basics of GSAP
This method used to animate any element to the new state in the DOM. This method takes 2 arguments: Target element and vars. The first value is you can pass either a DOM element or selector string to target an element The second argument is something called “vars”, which is just an object that has all properties that you want to change. vars mostly consists of all the CSS properties that can be animated but follow a camelCase syntax. For example “z-index” must be given as “zIndex”
<div class="targetElement"></div>
gsap.to('.targetElement', { duration: 1, x: 150, scale: 1.3 })
Example -> https://codepen.io/farisnceit/pen/mdPNvrM
from() is a similar method provided by gsap to animate any element from a new state. from() method takes 2 arguments. This first adds the styles given in the vars and the theme gradually brings it to the original styles of the element
gsap.from('.targetElement', { duration: 1, x: 150, scale: 1.3 })
Example -> https://codepen.io/farisnceit/pen/yLOmZMr
A gsap.fromTo() tween lets you define BOTH the starting and ending values for animation (as opposed to from() and to() tweens which use the current state as either the start or end). fromTo() method takes 3 arguments
gsap.to(DOMelement / selector, varsFrom, varsTo);
gsap.from('.targetElement', { duration: 1, x: 300, y:200, scale: 1.3, backgroundColor:'red' },{ duration: 1, x: 150, y:200, scale: 1.3 })
gsap.timeline() is a powerful sequencing tool that acts as a container for tweens and other timelines, making it simple to control them as a whole and precisely manage their timing. Without Timelines, building complex sequences would be far more cumbersome because you’d need to use a delay for every animation. For example (from GSAP Website):
// WITHOUT Timelines (only using delays): gsap.to("#id", {x: 100, duration: 1}); gsap.to("#id", {y: 50, duration: 1, delay: 1}); //wait 1 second gsap.to("#id", {opacity: 0, duration: 1, delay: 2}); //wait 2 seconds
We can see a basic example with gsap timeline. As you can see timeline property group every animation and animate it one after other
var tl = gsap.timeline({}); tl.from('#header-section',{y:'-100%',delay: 3, stagger: 0.5, ease: "elastic",}) tl.from('.landing-content h1',{y:'50px', opacity:'0', delay: 0.5, ease: "power4.in",}) tl.from('.landing-content span',{y:'50px', opacity:'0', delay: 0.5, ease: "power4.in",})
Made a simple example using a timeline for you understand how the timeline works Codepen Example -> https://codepen.io/farisnceit/pen/zYBOPzw
Eases Mainly used to adjust the timing of the element travels from a to b. we can create a smooth natural animation using eases. GSAP provides a graph chart called visualizer to choose the type of ease you need You can find the Visualizer here -> https://greensock.com/docs/v3/Eases You can get more details about ease here -> https://easings.net/
We can have an example of GSAP with react and see how it works. I will show a basic example of animation with react. I will not go deep into react as this is a GSAP related article. First, install react using create-react-app and then install gsap as a dependency
You find the detailed official documentation here -> https://greensock.com/react/
npx create-react-app my-app cd my-app npm start npm install gsap
import React, { useEffect, useRef } from "react"; import gsap from "gsap"; import "./styles.css"; export default function App() { const square = useRef(null); useEffect(() => { var tl = gsap.timeline({repeat:-1}); tl.to(square.current, 0.5, { x: 100 }); tl.to(square.current, 0.5, { y: 100 }); tl.to(square.current, 0.5, { x: 0 }); tl.to(square.current, 0.5, { y: 0 }); }, []); return <div className="square" ref={square}></div>; }
Use can find an example in this link: https://codesandbox.io/s/react-gsap-example-112zr?file=/src/App.js:0-463
hope I’m able to cover some useful basics of GSAP library for you
https://greensock.com/docs/v3/GSAP
https://greensock.com/showcase/
A challenge for you, create this animation using GSAP
https://dribbble.com/shots/4642794-Music-Landing-Page-Animation-Freebie
You must be logged in to post a comment.