Что делать если не работает gsap как надо?

Всем привет, возникла проблема с GSAP, есть вот такой код
import React, {useEffect, useRef} from 'react';
import {background} from "../../../DefaultContants/Constants";
import Image from "../../../UI/Image";
import processImage from '../../../image/mainPage/process.svg'
import SliderCertificate from "./SliderCertificate/SliderCertificate";
import gsap from 'gsap'

const OurProgress = () => {

    const image = useRef(null)

    useEffect(() => {
        gsap.to(image.current, {
            x: '100px',
            duration: 4,
            scrollTrigger: image.current
        })
    }, [])

    return (
        <div className={`${background} relative overflow-hidden`}>
            <div className={'container px-4 m-auto'}>
                <div>
                    <div className={`lg:text-center text-white lg:text-4xl font-bold text-3xl`} ref={image}>Наши достижения
                    </div>

                    <div className={'hidden lg:block'}>
                        <Image image={processImage}/>
                    </div>

                    
                    <SliderCertificate/>
                </div>
            </div>
        </div>
    );
};

export default OurProgress;


но проблема в том, что эта анимация срабатывает с самого начала загрузки страницы, а мне нужно что бы срабатывала только когда до этого элемента доскролили, в чем может быть проблема?
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Denbo
Frontend developer
Проблема в том что коллбэк в useEffect выполняется при маунте (внедрении) элемента в DOM.
В гугле есть много информации о том как показывать/скрывать элементы при скролле.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы