CSS анимация должна учитывать эти настройки и применяться только тогда, когда пользователь хочет видеть анимацию. Лучший способ добиться этого — заключить их в медиа-запрос с ограниченным движением. Вы можете использовать это различными способами, как описано в этой отличной статье, но все они связаны с проблемой, заключающейся в том, что вам нужно повторить настройки. Есть способ попроще. Вы можете использовать настраиваемое свойство:
@media (предпочитает-уменьшенное-движение: уменьшить) {
:корень {
--nomotion: нет;
}
}
html {
scroll-behavior: var (- nomotion, smooth);
}
кнопка {
анимация: var (- nomotion, вращать бесконечную 1с чередованием);
}
|
Это определяет обозначение настраиваемого свойства CSS как «нет», когда пользователь не хочет видеть какую-либо анимацию. Если пользователь хочет видеть анимацию, она не определена, поэтому механизм CSS применяет резервный вариант, который является вашими настройками анимации.
Вы можете увидеть это в действии в CodePen:
См. Pen
Условные анимации со свойствами CSS Кристиана Хейльмана (@ codepo8)
на CodePen.
Вы можете протестировать это с помощью эмуляции уменьшенного движения в инструментах разработчика браузера. Вот скриншот, демонстрирующий это в действии:







