Menu iconMenu iconFundamentals of Web Animation with GSAP
Fundamentals of Web Animation with GSAP

Chapter 1: Introduction to Web Animation

Practical Exercises for Chapter 1: Introduction to Web Animation

Great job on completing the first chapter! To reinforce your understanding and skills, here are some practical exercises related to the topics we've covered. Each exercise is designed to challenge you a bit more than the last, and solutions are provided to guide you if you get stuck. Remember, the best way to learn is by doing, so let's dive in!

Exercise 1: Basic Hover Animation

Create a button with a hover effect using GSAP. When the user hovers over the button, it should smoothly change its color and scale up slightly.

Solution:
HTML:

<button id="hoverButton">Hover over me!</button>

CSS:

#hoverButton {
    padding: 10px 20px;
    background-color: #008CBA;
    color: white;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease-in-out; /* For a smooth scale transition */
}

JavaScript:

const hoverBtn = document.getElementById("hoverButton");
gsap.to(hoverBtn, {
    duration: 0.3,
    backgroundColor: "#00FF00",
    scale: 1.2,
    paused: true
}).eventCallback("onEnter", () => hoverBtn.style.transform = "scale(1.2)")
  .eventCallback("onLeave", () => hoverBtn.style.transform = "scale(1)");

hoverBtn.addEventListener("mouseenter", () => gsap.globalTimeline.play());
hoverBtn.addEventListener("mouseleave", () => gsap.globalTimeline.reverse());

Exercise 2: Animate a Moving Box

Create a div element and use GSAP to move it across the screen from left to right, then back to its original position.

Solution:
HTML:

<div class="movingBox"></div>

CSS:

.movingBox {
    width: 100px;
    height: 100px;
    background-color: red;
    position: relative;
}

JavaScript:

gsap.to(".movingBox", {duration: 2, x: 300, yoyo: true, repeat: -1});

Exercise 3: Creating a Loading Bar Animation

Animate a div element to mimic a loading bar. The width of the div should expand from 0% to 100% over 5 seconds.

Solution:
HTML:

<div class="loadingBar"></div>

CSS:

.loadingBar {
    width: 0%;
    height: 20px;
    background-color: blue;
    position: relative;
}

JavaScript:

gsap.to(".loadingBar", {duration: 5, width: "100%"});

Exercise 4: Rotating an Element

Create an SVG of a simple shape (like a circle or square) and use GSAP to make it rotate 360 degrees continuously.

Solution:
HTML:

<svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" class="circle" />
</svg>

JavaScript:

gsap.to(".circle", {duration: 2, rotation: 360, repeat: -1, ease: "none"});

These exercises are designed to reinforce the key concepts of web animation using GSAP that we've covered in this chapter. By working through these challenges, you should gain a deeper understanding of the basics of GSAP and how it can be used to create engaging web animations. Don't hesitate to modify the exercises and experiment on your own – the best way to learn is through practice and exploration!

Practical Exercises for Chapter 1: Introduction to Web Animation

Great job on completing the first chapter! To reinforce your understanding and skills, here are some practical exercises related to the topics we've covered. Each exercise is designed to challenge you a bit more than the last, and solutions are provided to guide you if you get stuck. Remember, the best way to learn is by doing, so let's dive in!

Exercise 1: Basic Hover Animation

Create a button with a hover effect using GSAP. When the user hovers over the button, it should smoothly change its color and scale up slightly.

Solution:
HTML:

<button id="hoverButton">Hover over me!</button>

CSS:

#hoverButton {
    padding: 10px 20px;
    background-color: #008CBA;
    color: white;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease-in-out; /* For a smooth scale transition */
}

JavaScript:

const hoverBtn = document.getElementById("hoverButton");
gsap.to(hoverBtn, {
    duration: 0.3,
    backgroundColor: "#00FF00",
    scale: 1.2,
    paused: true
}).eventCallback("onEnter", () => hoverBtn.style.transform = "scale(1.2)")
  .eventCallback("onLeave", () => hoverBtn.style.transform = "scale(1)");

hoverBtn.addEventListener("mouseenter", () => gsap.globalTimeline.play());
hoverBtn.addEventListener("mouseleave", () => gsap.globalTimeline.reverse());

Exercise 2: Animate a Moving Box

Create a div element and use GSAP to move it across the screen from left to right, then back to its original position.

Solution:
HTML:

<div class="movingBox"></div>

CSS:

.movingBox {
    width: 100px;
    height: 100px;
    background-color: red;
    position: relative;
}

JavaScript:

gsap.to(".movingBox", {duration: 2, x: 300, yoyo: true, repeat: -1});

Exercise 3: Creating a Loading Bar Animation

Animate a div element to mimic a loading bar. The width of the div should expand from 0% to 100% over 5 seconds.

Solution:
HTML:

<div class="loadingBar"></div>

CSS:

.loadingBar {
    width: 0%;
    height: 20px;
    background-color: blue;
    position: relative;
}

JavaScript:

gsap.to(".loadingBar", {duration: 5, width: "100%"});

Exercise 4: Rotating an Element

Create an SVG of a simple shape (like a circle or square) and use GSAP to make it rotate 360 degrees continuously.

Solution:
HTML:

<svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" class="circle" />
</svg>

JavaScript:

gsap.to(".circle", {duration: 2, rotation: 360, repeat: -1, ease: "none"});

These exercises are designed to reinforce the key concepts of web animation using GSAP that we've covered in this chapter. By working through these challenges, you should gain a deeper understanding of the basics of GSAP and how it can be used to create engaging web animations. Don't hesitate to modify the exercises and experiment on your own – the best way to learn is through practice and exploration!

Practical Exercises for Chapter 1: Introduction to Web Animation

Great job on completing the first chapter! To reinforce your understanding and skills, here are some practical exercises related to the topics we've covered. Each exercise is designed to challenge you a bit more than the last, and solutions are provided to guide you if you get stuck. Remember, the best way to learn is by doing, so let's dive in!

Exercise 1: Basic Hover Animation

Create a button with a hover effect using GSAP. When the user hovers over the button, it should smoothly change its color and scale up slightly.

Solution:
HTML:

<button id="hoverButton">Hover over me!</button>

CSS:

#hoverButton {
    padding: 10px 20px;
    background-color: #008CBA;
    color: white;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease-in-out; /* For a smooth scale transition */
}

JavaScript:

const hoverBtn = document.getElementById("hoverButton");
gsap.to(hoverBtn, {
    duration: 0.3,
    backgroundColor: "#00FF00",
    scale: 1.2,
    paused: true
}).eventCallback("onEnter", () => hoverBtn.style.transform = "scale(1.2)")
  .eventCallback("onLeave", () => hoverBtn.style.transform = "scale(1)");

hoverBtn.addEventListener("mouseenter", () => gsap.globalTimeline.play());
hoverBtn.addEventListener("mouseleave", () => gsap.globalTimeline.reverse());

Exercise 2: Animate a Moving Box

Create a div element and use GSAP to move it across the screen from left to right, then back to its original position.

Solution:
HTML:

<div class="movingBox"></div>

CSS:

.movingBox {
    width: 100px;
    height: 100px;
    background-color: red;
    position: relative;
}

JavaScript:

gsap.to(".movingBox", {duration: 2, x: 300, yoyo: true, repeat: -1});

Exercise 3: Creating a Loading Bar Animation

Animate a div element to mimic a loading bar. The width of the div should expand from 0% to 100% over 5 seconds.

Solution:
HTML:

<div class="loadingBar"></div>

CSS:

.loadingBar {
    width: 0%;
    height: 20px;
    background-color: blue;
    position: relative;
}

JavaScript:

gsap.to(".loadingBar", {duration: 5, width: "100%"});

Exercise 4: Rotating an Element

Create an SVG of a simple shape (like a circle or square) and use GSAP to make it rotate 360 degrees continuously.

Solution:
HTML:

<svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" class="circle" />
</svg>

JavaScript:

gsap.to(".circle", {duration: 2, rotation: 360, repeat: -1, ease: "none"});

These exercises are designed to reinforce the key concepts of web animation using GSAP that we've covered in this chapter. By working through these challenges, you should gain a deeper understanding of the basics of GSAP and how it can be used to create engaging web animations. Don't hesitate to modify the exercises and experiment on your own – the best way to learn is through practice and exploration!

Practical Exercises for Chapter 1: Introduction to Web Animation

Great job on completing the first chapter! To reinforce your understanding and skills, here are some practical exercises related to the topics we've covered. Each exercise is designed to challenge you a bit more than the last, and solutions are provided to guide you if you get stuck. Remember, the best way to learn is by doing, so let's dive in!

Exercise 1: Basic Hover Animation

Create a button with a hover effect using GSAP. When the user hovers over the button, it should smoothly change its color and scale up slightly.

Solution:
HTML:

<button id="hoverButton">Hover over me!</button>

CSS:

#hoverButton {
    padding: 10px 20px;
    background-color: #008CBA;
    color: white;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease-in-out; /* For a smooth scale transition */
}

JavaScript:

const hoverBtn = document.getElementById("hoverButton");
gsap.to(hoverBtn, {
    duration: 0.3,
    backgroundColor: "#00FF00",
    scale: 1.2,
    paused: true
}).eventCallback("onEnter", () => hoverBtn.style.transform = "scale(1.2)")
  .eventCallback("onLeave", () => hoverBtn.style.transform = "scale(1)");

hoverBtn.addEventListener("mouseenter", () => gsap.globalTimeline.play());
hoverBtn.addEventListener("mouseleave", () => gsap.globalTimeline.reverse());

Exercise 2: Animate a Moving Box

Create a div element and use GSAP to move it across the screen from left to right, then back to its original position.

Solution:
HTML:

<div class="movingBox"></div>

CSS:

.movingBox {
    width: 100px;
    height: 100px;
    background-color: red;
    position: relative;
}

JavaScript:

gsap.to(".movingBox", {duration: 2, x: 300, yoyo: true, repeat: -1});

Exercise 3: Creating a Loading Bar Animation

Animate a div element to mimic a loading bar. The width of the div should expand from 0% to 100% over 5 seconds.

Solution:
HTML:

<div class="loadingBar"></div>

CSS:

.loadingBar {
    width: 0%;
    height: 20px;
    background-color: blue;
    position: relative;
}

JavaScript:

gsap.to(".loadingBar", {duration: 5, width: "100%"});

Exercise 4: Rotating an Element

Create an SVG of a simple shape (like a circle or square) and use GSAP to make it rotate 360 degrees continuously.

Solution:
HTML:

<svg width="100" height="100">
    <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" class="circle" />
</svg>

JavaScript:

gsap.to(".circle", {duration: 2, rotation: 360, repeat: -1, ease: "none"});

These exercises are designed to reinforce the key concepts of web animation using GSAP that we've covered in this chapter. By working through these challenges, you should gain a deeper understanding of the basics of GSAP and how it can be used to create engaging web animations. Don't hesitate to modify the exercises and experiment on your own – the best way to learn is through practice and exploration!