В библиотеке AOS (Animate on Scroll) параметр
anchorPlacement отвечает за точку привязки анимации
относительно элемента и области видимости окна браузера. Он определяет
момент, когда анимация должна сработать при прокрутке страницы.
Правильное использование этого параметра позволяет точно управлять
запуском анимаций, особенно для сложных макетов и длинных страниц.
AOS.init({
anchorPlacement: 'top-bottom'
});
anchorPlacement принимает строковое значение, состоящее
из двух частей:
top,
center, bottomtop, center, bottomЭти точки соединяются дефисом, например: 'top-bottom',
'center-center', 'bottom-top'.
| Значение | Описание |
|---|---|
top-bottom |
Верхняя граница элемента достигает нижней границы окна просмотра. |
top-center |
Верхняя граница элемента достигает центра окна просмотра. |
top-top |
Верхняя граница элемента достигает верхней границы окна просмотра. |
center-bottom |
Центр элемента достигает нижней границы окна просмотра. |
center-center |
Центр элемента достигает центра окна просмотра. |
center-top |
Центр элемента достигает верхней границы окна просмотра. |
bottom-bottom |
Нижняя граница элемента достигает нижней границы окна просмотра. |
bottom-center |
Нижняя граница элемента достигает центра окна просмотра. |
bottom-top |
Нижняя граница элемента достигает верхней границы окна просмотра. |
Каждое значение задаёт контроль над моментом появления анимации, что особенно важно для элементов разного размера, расположенных на длинной странице.
Когда элемент прокручивается к позиции, заданной
anchorPlacement, AOS добавляет CSS-класс
aos-animate к элементу, и анимация начинается.
Например:
<div data-aos="fade-up" data-aos-anchor-placement="center-bottom">
Контент
</div>
center-bottom означает: центр элемента
должен совпасть с нижней границей окна.Размер элемента влияет на визуальный эффект Для
больших элементов использование center-center делает
анимацию более естественной, так как она срабатывает, когда элемент
полностью виден.
Малые элементы Для небольших элементов,
находящихся в нижней части страницы, лучше использовать
top-bottom или top-center. Анимация запустится
раньше и будет заметна пользователю.
Сложные макеты Когда несколько элементов
расположены близко друг к другу, настройка anchorPlacement
позволяет добиться последовательной анимации, предотвращая одновременный
запуск всех эффектов.
Совместимость с отступами и скроллом Если
страница имеет фиксированные хедеры или плавающие меню,
anchorPlacement нужно корректировать, чтобы анимация не
срабатывала слишком поздно или слишком рано.
Тестирование на разных устройствах Высота окна
просмотра может отличаться на мобильных и десктопных устройствах.
Значения center-bottom или bottom-top могут
вести себя по-разному, поэтому рекомендуется проверять анимацию на
нескольких разрешениях.
Анимация при появлении верхней границы элемента:
AOS.init({
anchorPlacement: 'top-top'
});
Анимация при достижении центра элемента центром окна:
AOS.init({
anchorPlacement: 'center-center'
});
Анимация, запускающаяся раньше на больших элементах:
AOS.init({
anchorPlacement: 'top-center'
});
offset – смещает момент запуска относительно
anchorPlacement.duration – время анимации, не зависит от
anchorPlacement, но влияет на визуальный эффект при запуске.once – контролирует, будет ли анимация повторяться при
повторном прокручивании.Настройка anchorPlacement в комбинации с этими
параметрами позволяет создавать точно управляемые, плавные и
согласованные анимации для элементов страницы.
Хотите, я подготовлю подробную визуальную схему всех
вариантов anchorPlacement, чтобы сразу видеть, как
каждая комбинация влияет на запуск анимации? Это сильно упрощает
планирование эффектов на странице.