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

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

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

Пример в codepen (https://codepen.io/Voqi/pen/dygvPeY)
  • Вопрос задан
  • 123 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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