Я раньше не использовал Animate on Scroll (AOS), но, основываясь на чтении документов и CSS Tricks post , думаю, это можно сделать.
Вот что делает AOS, JavaScript -wise:
Идея AOS проста: наблюдать за всеми элементами и их позициями в зависимости от настроек, которые вы им предоставляете. Затем добавьте / удалите класс aos-animate
. Конечно, на практике это не всегда так просто, но идея AOS так проста. Каждый аспект анимации обрабатывается CSS.
Исходя из исходного кода для fade-up
анимации, вы можете попробовать:
<li data-aos="fade-before-up" class="fields__box">
&::before {
/* ... your properties to style the before element ... */
transition-property: opacity, transform;
opacity: 0
transform: translate3d(0, 100px, 0);
}
&.aos-animate::before {
opacity: 1;
transform: translate3d(0, 0, 0);
}
Ключевые моменты:
- Я не проверял это. Сожалею. Если вы хотите создать CodePen или JSFiddle, которые воспроизводят текущее поведение, которое вы видите, я посмотрю, смогу ли я его настроить.
- Атрибут
data-aos
в элементе HTML не должен не соответствует реальной анимации AOS. Это просто для того, чтобы библиотека поместила класс aos-animate
в элемент. - Псевдоэлемент
::before
изначально имеет старую непрозрачность 0 и 100px ниже. Когда AOS добавляет класс aos-animate
к <li>
, тогда элемент ::before
может быть переведен.