Библиотека AOS (Animate on Scroll) предназначена для
анимации элементов при прокрутке страницы. Одним из ключевых
инструментов управления анимациями является метод refresh.
Он обеспечивает синхронизацию состояния анимаций с текущим расположением
элементов в DOM и изменениями структуры страницы. Понимание работы
refresh необходимо для корректного отображения анимаций при
динамическом изменении контента.
Метод refresh выполняет следующие задачи:
Обновление внутренних данных о позициях
элементов AOS хранит координаты элементов, которые должны
анимироваться при прокрутке. Если контент страницы изменяется
динамически (добавляются новые блоки, изменяются размеры существующих
элементов), старые координаты перестают быть актуальными.
refresh пересчитывает эти координаты.
Сброс анимаций Метод может быть использован для повторной активации анимаций, которые уже были выполнены, если требуется их повторное отображение при обновлении контента.
Оптимизация производительности AOS не
пересчитывает позиции элементов автоматически при каждом изменении DOM.
Это снижает нагрузку на рендеринг и делает анимации более плавными.
refresh выполняется вручную только при
необходимости.
AOS.refresh();
Метод вызывается без аргументов и работает глобально для всех
элементов, имеющих атрибут data-aos.
Пример вызова после добавления нового элемента:
// Добавление динамического блока
const newElement = document.createElement('div');
newElement.setAttribute('data-aos', 'fade-up');
newElement.textContent = 'Новый блок';
document.body.appendChild(newElement);
// Обновление AOS
AOS.refresh();
После вызова refresh библиотека пересчитывает координаты
нового блока и подключает его к механизму анимации при прокрутке.
refresh и refreshHardAOS предоставляет два метода для обновления:
AOS.refresh()
AOS.refreshHard()
data-aos.refreshМетод становится необходимым в следующих ситуациях:
Без вызова refresh новые или изменённые элементы могут
не анимироваться, либо анимация будет некорректной из-за устаревших
координат.
Метод refresh учитывает текущие глобальные настройки,
заданные при инициализации AOS:
AOS.init({
offset: 200, // смещение перед анимацией
duration: 800, // продолжительность анимации
once: true // анимация проигрывается только один раз
});
При вызове refresh все элементы пересчитываются с учётом
этих параметров. Если настройки были изменены после инициализации, их
также необходимо применить заново перед вызовом refresh,
чтобы новые значения корректно отработали.
refresh после добавления динамического
контента или изменения размеров элементов.refresh только после
завершения всех изменений DOM, а не на каждое отдельное изменение.refreshHard.Метод refresh обеспечивает корректное функционирование
анимаций AOS при динамическом и адаптивном контенте, позволяя библиотеке
правильно определять видимые элементы и обеспечивать плавное
воспроизведение эффектов при скролле.