iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
Modern Web

在Vibe Coding 時代一起來做沒有AI感的漂亮網站吧!系列 第 11

GSAP 、動畫翻譯機!只要你在任何剪輯軟體(甚至是剪映)用過keyframe,你就會用程式寫動畫

  • 分享至 

  • xImage
  •  

嗨咿,我是 illumi,終於要進入到重頭戲 GSAP 了!

迫不及待要來用程式寫動畫了嗎?在開始之前我們先全面性了解他有什麼功能!

GSAP 就像是「在程式裡幫你做 AE 的事」,它讓你用程式碼來控制時間軸(Timeline)+ 關鍵影格(Keyframe)

(AE畫面可點擊觀看影片)

1. 基本 Tween(單一屬性動畫)→ 1個圖層 2 個Keyframe

  • AE 概念:你在 AE 裡,對一個圖層的 透明度(Opacity) 打兩個關鍵影格,從 0% → 100%。

  • GSAP 寫法

    gsap.to(".box", { opacity: 1, duration: 1 });
    
    
  • 比喻:這就是 淡入(Fade In)的最簡單剪輯手法。
    Yes


2. Timeline(時間軸組合)→ 1個↑ 圖層 2 個↑Keyframe

  • AE 概念:把多個動畫放到一個合成(Comp)的 Timeline 裡,精準控制每個圖層的開始與結束時間。

  • GSAP 寫法

    const tl = gsap.timeline();
    tl.to(".box", { x: 100, duration: 1 })
      .to(".circle", { y: 100, duration: 1 }, "<"); // 與上一個同步
    
    
  • 像在 AE 裡把「移動」和「掉落」兩段動畫剪成一條連續的序列,還能用 <+=0.5 精準排時間。
    Yes


3. Easing(緩動曲線)→Graph Editor(AE)、曲線變速(剪映)

  • AE 概念:你在 Graph Editor 裡拉曲線,讓動畫不是「死板的線性」,而是快慢變化。

  • GSAP 寫法

    gsap.to(".box", { x: 200, ease: "power2.out" });
    
    
  • 比喻:AE 的「Easy Ease」,就是 GSAP 的 ease
    Yes


4. ScrollTrigger(捲動觸發)→ 用滑鼠滾輪控制進度條

  • AE 概念:假設有個「時間指針」,不是靠播放頭,而是靠使用者的滑鼠滾輪推進。

  • GSAP 寫法

    gsap.to(".box", {
      x: 500,
      scrollTrigger: {
        trigger: ".section",
        start: "top center",
        end: "bottom top",
        scrub: true,
      },
    });
    
    
  • 比喻:就像「把 AE 的播放頭交給滑鼠滾動控制」,常用在做 捲動視差動畫(Scroll Animation)。


5. Stagger(群組延遲)→每個圖層開始時間不同

  • AE 概念:你有 3 個圖層,做一樣的位移,但每個圖層延遲 0.1 秒。

  • GSAP 寫法

    gsap.to(".item", { y: -50, stagger: 0.1 });
    
    
  • 比喻:AE 的 Sequence Layers 功能,一層一層順序播放。

Yes

有哪些屬性可以控制?

GSAP 屬性 效果說明 AE 對應概念
opacity 透明度 0 → 1 不透明度 (Opacity)
x, y X/Y 軸位移(px) 位置 (Position)
xPercent, yPercent 依元素大小百分比移動 位置 (Position, 百分比)
scale, scaleX, scaleY 縮放大小 縮放 (Scale)
rotation 旋轉角度 (deg) 旋轉 (Rotation)
skewX, skewY 傾斜 偏斜 (Skew)
backgroundColor 改變背景色 填色/顏色 (Fill/Color Overlay)
color 改變文字顏色 文字顏色 (Character Fill Color)
borderRadius 圓角變化 蒙版/遮罩邊角 (Mask roundness)
width, height 尺寸變化 尺寸縮放 (Scale, Rect Size)
clipPath 改變裁切區域 遮罩 (Mask Path)
filter: "blur(10px)" 模糊濾鏡 模糊 (Gaussian Blur)
boxShadow 陰影變化 陰影 (Drop Shadow)
text (需外掛) 文字打字機效果 文字逐字顯示 (Typewriter)

是不是想下載了呀?先別急,不同框架適用不同的使用方法:

各框架怎麼用 GSAP?

  • ReactuseGSAP(官方建議用 @gsap/react 插件)
  • Vue → 可以直接用 onMounted 控制,或用 vue-gsap 包裝
  • Svelte → 直接在生命週期 hook 裡寫 GSAP
  • 純 JS → 直接 import gsap from "gsap"

明天就來講安裝和引入~


上一篇
網頁動畫全攻略:從 className 到 GSAP,怎麼選?
系列文
在Vibe Coding 時代一起來做沒有AI感的漂亮網站吧!11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言