--- title: prefers-reduced-motion slug: Web/CSS/@media/prefers-reduced-motion tags: - '@media' - CSS - Media Queries - Reference - media feature translation_of: Web/CSS/@media/prefers-reduced-motion ---
CSS медиа функция prefers-reduced-motion
может использоваться для определения того, запросил ли пользователь, чтобы ОС минимизировала количество анимации или движения, которые она использует.
no-preference
reduce
В этом примере присутствует раздражающая анимация, если вы не включите «Уменьшить движение» в настройках доступности.
<div class="animation">animated box</div>
.animation { -webkit-animation: vibrate 0.3s linear infinite both; animation: vibrate 0.3s linear infinite both; } @media (prefers-reduced-motion: reduce) { .animation { animation: none; -webkit-animation: none; } }
.animation { background-color: rebeccapurple; color: #fff; font: 1.2em Helvetica, arial, sans-serif; width: 200px; padding: 1em; border-radius: 1em; text-align: center; } /* ---------------------------------------------- * Generated by Animista on 2018-9-2 13:47:0 * w: http://animista.net, t: @cssanimista * ---------------------------------------------- */ /** * ---------------------------------------- * animation vibrate-1 * ---------------------------------------- */ @-webkit-keyframes vibrate { 0% { -webkit-transform: translate(0); transform: translate(0); } 20% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); } 40% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); } 60% { -webkit-transform: translate(2px, 2px); transform: translate(2px, 2px); } 80% { -webkit-transform: translate(2px, -2px); transform: translate(2px, -2px); } 100% { -webkit-transform: translate(0); transform: translate(0); } } @keyframes vibrate { 0% { -webkit-transform: translate(0); transform: translate(0); } 20% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); } 40% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); } 60% { -webkit-transform: translate(2px, 2px); transform: translate(2px, 2px); } 80% { -webkit-transform: translate(2px, -2px); transform: translate(2px, -2px); } 100% { -webkit-transform: translate(0); transform: translate(0); } }
{{EmbedLiveSample("Examples")}}
Specification | Status | Comment |
---|---|---|
{{SpecName('CSS5 Media Queries', '#descdef-media-prefers-reduced-motion', 'prefers-reduced-motion')}} | {{Spec2('CSS5 Media Queries')}} | Изначальное определение. |
{{Compat("css.at-rules.media.prefers-reduced-motion")}}