Задать вопрос
Vextor-ltd
@Vextor-ltd
Webdeveloper

Как на GSAP при scrollTrigger сделать последовательное появление элементов с одинаковым классом?

Используя библиотеку wow.js это сделать просто.
Но мне нужно сделать это на GSAP.
const collageItems = document.querySelectorAll(".collage__item");
gsap.from(collageItems, {
    scrollTrigger: {
      trigger: collageItems,
    },
    autoAlpha: 0,
    y: 150,
    duration: 1.5,
    ease: "power1.out"
});


Когда я прописываю код выше, то триггером сразу для всех элементов является самый первый элемент с классом .collage__item, т.е. все элементы с таким классом начинают всплывать как только первый появляется в области window.

Как сделать, так чтобы эффект всплытия применялся к каждому конкретно?
  • Вопрос задан
  • 1025 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@alexbazhenDev
Ты пытаешься всем элементам установить один триггер (для каждого экземпляра scrollTrigger может быть только один триггер, самому GSAP-у для анимирования можно скормить массив элементов, а scrollTrigger-у нет).

Как вариант, ScrollTrigger не помещать в анимацию, а наоборот:
const collageItems = Array.from(document.querySelectorAll(".collage__item"));
collageItems.forEach((elem) => {
  ScrollTrigger.create({
    trigger: elem,
    start: "top 75%", // к примеру :)
    animation: gsap.from(elem, {
      autoAlpha: 0,
      y: 150,
      duration: 1.5,
      ease: "power1.out"
    })
  });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽