Home >Web Front-end >JS Tutorial >GreenSock for Beginners (Part 2): GSAP's Timeline
GreenSock (GSAP) TimelineMax: Mastering Complex Web Animations
This tutorial delves into GreenSock's TimelineMax, a powerful tool for managing intricate web animations. We'll cover key concepts and techniques to elevate your animation skills.
Key Concepts:
=1
, -=0.5
) provide granular control over tween start times relative to others in the timeline.Why Use TimelineMax?
In simpler animations, individual tweens with delay properties suffice. However, as complexity increases, managing individual tween delays becomes cumbersome. TimelineMax solves this by providing a centralized control mechanism.
Consider two tweens:
Without TimelineMax, coordinating their timing requires manual delay adjustments on the second tween. TimelineMax eliminates this need.
Coordinating Tweens with TimelineMax
TimelineMax acts as a container for tweens. Tweens within a timeline execute sequentially by default. The following code demonstrates a basic example:
<code class="language-javascript">const tl = new TimelineMax(); tl.set('.example__title', { scale: 0.2, autoAlpha: 0 }) .set('.example__ball', { scale: 0.2 }) .to('.example__ball', 0.5, { rotationX: 360, rotationY: 180, scale: 1, ease: Elastic.easeIn.config(2, 1) }) .to('.example__title', 0.5, { autoAlpha: 1, scale: 1, ease: Back.easeOut.config(4) });</code>
Notice the automatic sequencing—no manual delays are needed.
Position Parameters and Labels
For more precise control, use position parameters:
=1
: Starts a tween 1 second after the previous one.-=0.5
: Starts a tween 0.5 seconds before the previous one.1
: Starts a tween at the absolute time of 1 second.Labels further enhance readability:
<code class="language-javascript">tl.addLabel('animationStart'); tl.to(element, 0.5, { x: 100 }, 'animationStart'); tl.to(otherElement, 1, { y: 100 }, 'animationStart+=2'); //Starts 2 seconds after 'animationStart'</code>
Master Timelines and Organization
For complex animations, nest timelines within a master timeline:
<code class="language-javascript">function animationPart1() { const tl = new TimelineMax(); // Add tweens here... return tl; } const masterTimeline = new TimelineMax(); masterTimeline.add(animationPart1(), 'part1'); // Add more nested timelines...</code>
This modular approach improves code organization and maintainability.
Additional TimelineMax Features:
new TimelineMax({ paused: true });
play()
, pause()
, reverse()
, restart()
, resume()
timeScale()
seek()
with labelsConclusion:
GreenSock's TimelineMax empowers you to create sophisticated, well-organized web animations. By mastering its features, you can build highly interactive and visually appealing experiences. Explore the provided CodePen examples for practical application and experimentation. Stay tuned for Part 3!
Frequently Asked Questions (FAQs): (These are already addressed in the original text, but rephrased for clarity and conciseness)
timeScale()
to adjust animation speed. timeScale(2)
doubles the speed; timeScale(0.5)
halves it.addLabel("labelName")
to add labels for precise tween positioning.pause()
and resume()
to control animation playback.reverse()
to play animations backward.repeat()
to loop animations (e.g., repeat(3)
for three repetitions).staggerTo()
, staggerFrom()
, or staggerFromTo()
for staggered animations. =
and -=
in position parameters for relative timing.progress()
to get or set the animation's progress.The above is the detailed content of GreenSock for Beginners (Part 2): GSAP's Timeline. For more information, please follow other related articles on the PHP Chinese website!