Задать вопрос
cchillboyy
@cchillboyy
Я заварен, как лапша

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

Есть анимация

@keyframes rev-img {
0% {
width: 0%;
}

50% {
width: 7%;
}

100% {
width: 17%;
}
}

Нужно, чтобы она запускалась не сразу после загрузки, а только, когда объект, попадает в поле зрения, ну когда пользователь скроллит до блока, где должна быть анимация. Возможно ли это сделать с помощью какого нибудь скрипта в javascpript?
  • Вопрос задан
  • 1173 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 1
kosolapus
@kosolapus
Если помогло - отмечайте решением
Вполне возможно.
1. Слушатель на скролл корневого документа
2. Внутри слушателя - проверка высоты скролла, сравнение ее с позицией блока. Если мы проскроллили больше, чем высота блока, то блок видимый (на экране)
3. Когда блок стал видимым, добавляем ему класс, на который завязана анимация
4. При необходимости, когда блок уходит за границы экрана, класс можно убрать, чтоб анимация повторялась
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
сейчас еще такая прикольная штука есть
https://developer.mozilla.org/ru/docs/Web/API/Inte...
несложно заскриптовать, разница в том, что не надо слушать каждый скролл, а браузер всё сделает когда надо сам
Ответ написан
Комментировать
@FoxSparky
Все просто. Есть замечательная js-библиотека Wow.js
https://wowjs.uk
С ней вашу задачу очень просто решить)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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