Библиотека AOS (Animate on Scroll) предоставляет
удобные инструменты для анимации элементов при прокрутке страницы. Одной
из полезных функций является возможность отключения анимаций на
определённых устройствах или при достижении конкретной ширины
экрана. Это реализуется через параметр disable,
который можно настроить как статически, так и динамически с
использованием breakpoints.
disableПараметр disable управляет отключением анимаций. Его
можно задать тремя основными способами:
Булевое значение
AOS.init({
disable: true, // полностью отключает анимацию
});
true – анимации отключены на всех устройствах.false – анимации включены на всех устройствах.Функция
AOS.init({
disable: function() {
return window.innerWidth < 768; // отключение для узких экранов
}
});
Использование функции позволяет вычислять условие динамически, например, в зависимости от размера окна или типа устройства.
Строка
'phone' | 'tablet' | 'mobile'
AOS.init({
disable: 'mobile' // отключение на мобильных устройствах
});
Предустановленные значения упрощают отключение для типичных устройств:
'phone' – смартфоны'tablet' – планшеты'mobile' – любые мобильные устройстваДля более точного управления анимациями рекомендуется применять
breakpoint по ширине экрана. Основная логика
заключается в проверке window.innerWidth и возврате
true или false для параметра
disable.
Пример: отключение анимации на устройствах с шириной экрана меньше 1024px:
AOS.init({
disable: function() {
return window.innerWidth < 1024;
}
});
Для сложных проектов можно создавать несколько условий для разных диапазонов экранов. Например:
AOS.init({
disable: function() {
const width = window.innerWidth;
if (width < 768) return true; // смартфоны
if (width >= 768 && width < 1024) return false; // планшеты – анимации включены
if (width >= 1024) return false; // десктоп – анимации включены
}
});
Такая конфигурация позволяет тонко настраивать анимации в зависимости от конкретного устройства или ширины экрана.
AOS не обновляет автоматически состояние disable при
изменении размера окна после инициализации. Для корректной работы с
изменением ширины экрана необходимо:
disable.AOS.refresh() при событии
resize.AOS.init({
disable: function() {
return window.innerWidth < 1024;
}
});
window.addEventListener('resize', function() {
AOS.refresh();
});
AOS.refresh() пересчитывает позиции элементов и
активирует или деактивирует анимации согласно текущей ширине окна.Иногда удобно сочетать настройку disable с CSS media
queries для более оптимальной загрузки и производительности:
@media (max-width: 1023px) {
.aos-item {
transition: none !important;
}
}
disable это обеспечивает
максимально плавное и предсказуемое поведение
интерфейса.disable при проектировании
адаптивного интерфейса.AOS.refresh() при динамическом изменении
размеров окна.Эта настройка позволяет эффективно управлять анимациями, обеспечивая их корректную работу на всех типах устройств и предотвращая лишнюю нагрузку на слабые или мобильные устройства.