Определяем, предпочитает ли пользователь уменьшенную анимацию!



Современные ОС позволяют пользователю снизить количество анимаций. Браузер транслирует это предпочтение через media query prefers-reduced-motion, и интерфейс может адаптироваться автоматически.

Проверяем текущее состояние:
const motionMQ = window.matchMedia(
"(prefers-reduced-motion: reduce)"
);


const isReducedMotion = motionMQ.matches;

matches читается синхронно и отражает текущее системное состояние на момент инициализации скрипта.
Реагируем на изменение настройки в системе:
motionMQ.addEventListener("change", ({ matches }) => {
document.documentElement.dataset.motion =
matches ? "reduced" : "full";
});


Событие change срабатывает при изменении системной настройки, без polling и лишней логики.

Применяем режим при загрузке приложения:
document.documentElement.dataset.motion =
isReducedMotion ? "reduced" : "full";


Это позволяет синхронизировать состояние интерфейса с системными настройками пользователя.

Такой подход автоматически учитывает настройки доступности пользователя, снижает визуальную нагрузку и улучшает UX без дополнительных переключателей.

Code Ready | #практика
Просмотры: 298
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти