Библиотека AOS (Animate on Scroll) предоставляет возможность анимации
элементов при прокрутке страницы. Одной из полезных функций является
параметр disable, который позволяет отключать анимацию в
определённых условиях, включая размеры экрана и медиазапросы. Это
особенно важно для адаптивного дизайна, когда анимации могут мешать или
снижать производительность на мобильных устройствах.
disable и
его вариантыПараметр disable может принимать несколько типов
значений:
Булевый тип
AOS.init({
disable: true // анимация полностью отключена
});
В этом случае все анимации на странице будут отключены. Значение
false активирует анимацию.
Функция Позволяет динамически определять, должна ли анимация быть отключена:
AOS.init({
disable: function() {
return window.innerWidth < 768;
}
});
Здесь анимация отключается для экранов с шириной меньше 768 пикселей.
Функция должна возвращать true для отключения и
false для включения анимаций.
Строка с медиазапросом Можно использовать CSS-подобные медиазапросы:
AOS.init({
disable: '(max-width: 768px)'
});
Анимация автоматически отключается при ширине экрана 768 пикселей и меньше.
Использование медиазапросов в disable позволяет тонко
управлять анимациями на разных устройствах:
Мобильные устройства: Для телефонов часто отключают сложные анимации, чтобы не перегружать процессор и не замедлять прокрутку:
AOS.init({
disable: '(max-width: 600px)'
});Планшеты: На планшетах иногда оставляют лёгкие анимации, но отключают более ресурсоёмкие:
AOS.init({
disable: function() {
return window.innerWidth >= 600 && window.innerWidth < 1024;
}
});Десктоп: На больших экранах анимации включены по умолчанию, обеспечивая визуальную привлекательность интерфейса.
Можно создавать более сложные правила, комбинируя ширину экрана и другие параметры, например, проверку устройства:
AOS.init({
disable: function() {
const isSmallScreen = window.innerWidth < 768;
const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
return isSmallScreen && isTouchDevice;
}
});
В этом примере анимация отключается только для маленьких экранов на сенсорных устройствах.
Если окно браузера изменяет размеры после инициализации AOS, можно
вызвать пересчёт состояния анимаций с помощью метода
refresh():
window.addEventListener('resize', function() {
AOS.refresh();
});
Это особенно полезно, когда условие disable зависит от
window.innerWidth.
disable, если
условия более сложные или зависят от других факторов, кроме ширины
экрана.AOS.init({
disable: '(max-width: 480px)'
});
AOS.init({
disable: function() {
return window.innerWidth < 768 && ('ontouchstart' in window || navigator.maxTouchPoints > 0);
}
});
AOS.init({
disable: function() {
return window.innerWidth < 768;
}
});
window.addEventListener('resize', AOS.refresh);
Использование disable с медиазапросами делает библиотеку
AOS гибкой для любых адаптивных макетов, позволяя сохранять
производительность и корректность анимаций на всех устройствах.