Как запускать анимацию при появлении элемента в зоне видимости (не animate.css и wow.js)?

Прошу помочь с решением вопроса :) Я написал в CSS то, что хочется увидеть, не используя библиотеки анимацией, типа, animate.css , поэтому wow и data-wow-delay в моем случае не работает. Как запускать данную анимацию с момента появления ее месторасположения в зоне видимости (при скроле)?

https://jsfiddle.net/serebro_/8a4hs4tx/2/

.animation_car8{
  animation: anim_car8 linear 3s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
  transform-origin: 50% 50%;
  
}

@keyframes anim_car8{
  0% {
    opacity:0;
    transform:  translate(0%,100%)  ;
  }
  8% {
    opacity:1;
    transform:  translate(50%,100%)  ;
  }
  92% {
    opacity:1;
    transform:  translate(650%,100%)  ;
  }
  100% {
    opacity:0;
    transform:  translate(700%,100%)  ;
  }
}
  • Вопрос задан
  • 12944 просмотра
Решения вопроса 1
iiiBird
@iiiBird Куратор тега CSS
Пока ты спишь - твой конкурент совершенствуется
$(window).scroll(function(){
    if ( $(this).scrollTop() > el.offset().top - 200 ) {
        el.addClass('animation_car8');
    }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Вычисляешь offsetTop у элемента от начала документа и отслеживаешь во время скролла когда же scrollTop сравняется с этим offsetTop
Ответ написан
Комментировать
lazalu68
@lazalu68
Salmon
А мне всё нравится оборачивать в методы, так что вот вам воспитанный метод который и классы задаёт когда элементы входят в поле зрения, и за собой всё убирает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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