Задать вопрос
@moiseev1788

Как сделать, чтобы анимация срабатывала один раз при скролле?

Помогите пли, как сделать, чтобы анимация при скролле срабатывала один раз. То есть, когда анимация сработала, при повторном скролле она уже не срабатывала

Пример в codepen (https://codepen.io/Voqi/pen/dygvPeY)
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
noder_ss
@noder_ss
Линуксоид-энтузиаст и SQL разработчик
Лучше вообще все заменить, к примеру на это:
function onEntry(entry) {
      entry.forEach(change => {
        if (change.isIntersecting) {
         change.target.classList.add('element-show');
        
        }
      });
    }
        let options = {
      threshold: [0.5] };
    let observer = new IntersectionObserver(onEntry, options);
    let elements = document.querySelectorAll('.element-animation');
    
    for (let elm of elements) {
      observer.observe(elm);
    }

.element-animation{

            top: 0px;
            opacity: 0;
            position: relative;
        }
        .element-animation.element-show{
        position: relative;
        top: 20px;
    opacity: 1;
    transition-duration: 1.4s;
        }
      
      .info-head.menu-margin{
margin-top: -140px;

          transition-duration: .6s !important;
      }

Элементу с анимацией прописать класс element-animation
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы