ScrollTrigger.create khác gì so với và scrollTrigger trong gsap.to (ok)

1. ScrollTrigger.create()

🔧 Cách hoạt động

  • Tạo một ScrollTrigger độc lập, không gắn trực tiếp vào animation nào.

  • Dùng để:

    • Trigger function (onEnter, onLeave…)

    • Pin phần tử

    • Kết hợp timeline

    • Thực hiện logic scroll-based mà không cần animation gsap.to() riêng lẻ


Example

jsCopyEditScrollTrigger.create({
  trigger: ".section",
  start: "top center",
  end: "bottom top",
  pin: true,
  scrub: true,
  onEnter: () => console.log("Entered!"),
  onLeave: () => console.log("Leaved!")
});

Ý nghĩa: Pin section, scrub, và chạy console log khi scroll đến hoặc rời section.


2. scrollTrigger bên trong gsap.to()

🔧 Cách hoạt động

  • Tạo ScrollTrigger gắn trực tiếp với animationgsap.to() khai báo.

  • Khi ScrollTrigger kích hoạt → chạy animation đó.


Example

jsCopyEditgsap.to(".box", {
  x: 300,
  opacity: 1,
  duration: 1,
  scrollTrigger: {
    trigger: ".box",
    start: "top 80%",
    end: "bottom top",
    scrub: true,
    markers: true
  }
});

Ý nghĩa: Khi scroll đến .box, animate x và opacity theo scrub.


🔬 3. Khác nhau về bản chất

ScrollTrigger.create()

scrollTrigger in gsap.to()

Bản chất

Tạo ScrollTrigger độc lập

Gắn ScrollTrigger vào 1 animation gsap

Animation

Không có animation nếu không kết hợp timeline

Animation chạy theo gsap.to() config

Use case

Pin, onEnter, call function, kết hợp timeline

Animate property khi scroll đến trigger


4. Kết hợp Timeline + ScrollTrigger.create()

jsCopyEditconst tl = gsap.timeline({
  scrollTrigger: {
    trigger: ".section",
    start: "top top",
    end: "+=500",
    scrub: true,
    pin: true
  }
});

tl.to(".box", { x: 300 })
  .to(".box", { opacity: 0 });

Ý nghĩa: ScrollTrigger điều khiển toàn timeline, không cần gắn scrollTrigger vào từng gsap.to() riêng lẻ.


🎯 5. Tóm tắt

Khi nào dùng
Cách dùng

ScrollTrigger độc lập (pin, callback, control layout)

ScrollTrigger.create()

Animate property khi scroll đến trigger

gsap.to({ scrollTrigger: { ... }})

Animation phức tạp nhiều step

Timeline + ScrollTrigger (thường kết hợp ScrollTrigger.create() trong timeline config)


Nếu bạn muốn, tôi có thể viết full bài học Timeline + ScrollTrigger + gsap.to vs ScrollTrigger.create chuẩn production cho dự án GSAP tuần này. Hãy cho tôi biết để tôi triển khai chi tiết cho lộ trình frontend animation của bạn.

Ask ChatGPT

Last updated

Was this helpful?