Параметр anchorPlacement

В библиотеке AOS (Animate on Scroll) параметр anchorPlacement отвечает за точку привязки анимации относительно элемента и области видимости окна браузера. Он определяет момент, когда анимация должна сработать при прокрутке страницы. Правильное использование этого параметра позволяет точно управлять запуском анимаций, особенно для сложных макетов и длинных страниц.


Синтаксис

AOS.init({
  anchorPlacement: 'top-bottom'
});

anchorPlacement принимает строковое значение, состоящее из двух частей:

  1. Вертикальная точка на элементе: top, center, bottom
  2. Вертикальная точка в окне просмотра: top, 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 означает: центр элемента должен совпасть с нижней границей окна.
  • Анимация сработает именно в этот момент прокрутки.

Особенности и рекомендации

  1. Размер элемента влияет на визуальный эффект Для больших элементов использование center-center делает анимацию более естественной, так как она срабатывает, когда элемент полностью виден.

  2. Малые элементы Для небольших элементов, находящихся в нижней части страницы, лучше использовать top-bottom или top-center. Анимация запустится раньше и будет заметна пользователю.

  3. Сложные макеты Когда несколько элементов расположены близко друг к другу, настройка anchorPlacement позволяет добиться последовательной анимации, предотвращая одновременный запуск всех эффектов.

  4. Совместимость с отступами и скроллом Если страница имеет фиксированные хедеры или плавающие меню, anchorPlacement нужно корректировать, чтобы анимация не срабатывала слишком поздно или слишком рано.

  5. Тестирование на разных устройствах Высота окна просмотра может отличаться на мобильных и десктопных устройствах. Значения center-bottom или bottom-top могут вести себя по-разному, поэтому рекомендуется проверять анимацию на нескольких разрешениях.


Примеры использования

Анимация при появлении верхней границы элемента:

AOS.init({
  anchorPlacement: 'top-top'
});

Анимация при достижении центра элемента центром окна:

AOS.init({
  anchorPlacement: 'center-center'
});

Анимация, запускающаяся раньше на больших элементах:

AOS.init({
  anchorPlacement: 'top-center'
});

Взаимодействие с другими параметрами AOS

  • offset – смещает момент запуска относительно anchorPlacement.
  • duration – время анимации, не зависит от anchorPlacement, но влияет на визуальный эффект при запуске.
  • once – контролирует, будет ли анимация повторяться при повторном прокручивании.

Настройка anchorPlacement в комбинации с этими параметрами позволяет создавать точно управляемые, плавные и согласованные анимации для элементов страницы.


Хотите, я подготовлю подробную визуальную схему всех вариантов anchorPlacement, чтобы сразу видеть, как каждая комбинация влияет на запуск анимации? Это сильно упрощает планирование эффектов на странице.