Библиотека AOS (Animate on Scroll) предоставляет удобные средства для анимации элементов при прокрутке страницы. В ряде случаев возникает необходимость отключить анимацию на мобильных устройствах, чтобы улучшить производительность или адаптировать интерфейс под небольшие экраны. AOS предусматривает несколько подходов для решения этой задачи.
disable при инициализацииПри инициализации AOS можно передать опцию disable,
которая позволяет отключить анимации на определённых устройствах или при
выполнении определённого условия.
Пример использования:
AOS.init({
disable: function() {
// Отключение для экранов шириной меньше 768px
return window.innerWidth < 768;
},
duration: 800,
once: true
});
Разбор ключевых моментов:
disable может принимать:
Булево значение (true или false).
true — отключает AOS на всех устройствах.false — оставляет анимации включёнными.Функцию, возвращающую true или false.
Функция выполняется при каждой инициализации и позволяет реализовать
условное отключение.
window.innerWidth позволяет ориентироваться на
ширину экрана. Обычно считают мобильными устройства с шириной меньше
768px.
Если анимации нужно отключить только визуально, можно применять CSS-классы AOS совместно с медиазапросами:
@media (max-width: 767px) {
[data-aos] {
opacity: 1 !important;
transform: none !important;
transition: none !important;
}
}
Объяснение:
data-aos будут отображаться
без анимации на мобильных устройствах.opacity, transform и
transition сбрасываются, что имитирует отсутствие
анимации.Иногда анимацию необходимо полностью отключить после загрузки
страницы, если пользователь открыл сайт с мобильного устройства. Для
этого используется метод AOS.destroy():
document.addEventListener('DOMContentLoaded', function() {
if (window.innerWidth < 768) {
AOS.init();
AOS.destroy(); // Полное отключение анимаций
} else {
AOS.init({
duration: 800,
once: true
});
}
});
Особенности подхода:
Для более точного определения мобильных устройств можно использовать проверку User-Agent или библиотеку для детекции устройства. Пример на Jav * aScript:
function isMobileDevice() {
return /Android|iPhone|iPad|iPod|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent);
}
AOS.init({
disable: isMobileDevice,
duration: 700,
once: true
});
Комментарии:
disable принимает функцию, которая возвращает
true для отключения анимации.Для крупных проектов целесообразно использовать комбинированный подход:
disable — для условной
инициализации библиотеки.AOS.destroy() — для полной
деинициализации на мобильных устройствах.Пример комплексной конфигурации:
document.addEventListener('DOMContentLoaded', function() {
const isMobile = window.innerWidth < 768;
AOS.init({
disable: isMobile,
duration: 600,
once: true
});
if (isMobile) {
AOS.destroy();
}
});
Такой подход обеспечивает:
disable или
destroy.Эти методы обеспечивают гибкое управление анимацией AOS и позволяют адаптировать интерфейс для мобильных пользователей без потери функциональности на десктопах.