嗨咿,我是 illumi,終於要進入到重頭戲 GSAP 了!
迫不及待要來用程式寫動畫了嗎?在開始之前我們先全面性了解他有什麼功能!
GSAP 就像是「在程式裡幫你做 AE 的事」,它讓你用程式碼來控制時間軸(Timeline)+ 關鍵影格(Keyframe)。
AE 概念:你在 AE 裡,對一個圖層的 透明度(Opacity) 打兩個關鍵影格,從 0% → 100%。
GSAP 寫法:
gsap.to(".box", { opacity: 1, duration: 1 });
AE 概念:把多個動畫放到一個合成(Comp)的 Timeline 裡,精準控制每個圖層的開始與結束時間。
GSAP 寫法:
const tl = gsap.timeline();
tl.to(".box", { x: 100, duration: 1 })
.to(".circle", { y: 100, duration: 1 }, "<"); // 與上一個同步
AE 概念:你在 Graph Editor 裡拉曲線,讓動畫不是「死板的線性」,而是快慢變化。
GSAP 寫法:
gsap.to(".box", { x: 200, ease: "power2.out" });
AE 概念:假設有個「時間指針」,不是靠播放頭,而是靠使用者的滑鼠滾輪推進。
GSAP 寫法:
gsap.to(".box", {
x: 500,
scrollTrigger: {
trigger: ".section",
start: "top center",
end: "bottom top",
scrub: true,
},
});
比喻:就像「把 AE 的播放頭交給滑鼠滾動控制」,常用在做 捲動視差動畫(Scroll Animation)。
AE 概念:你有 3 個圖層,做一樣的位移,但每個圖層延遲 0.1 秒。
GSAP 寫法:
gsap.to(".item", { y: -50, stagger: 0.1 });
比喻:AE 的 Sequence Layers 功能,一層一層順序播放。
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) |
是不是想下載了呀?先別急,不同框架適用不同的使用方法:
useGSAP
(官方建議用 @gsap/react
插件)onMounted
控制,或用 vue-gsap
包裝import gsap from "gsap"
明天就來講安裝和引入~