トップへ(mam-mam.net/)

CSSのアニメーションが行われない

検索:

「CSSのアニメーションが行われない」

CSSで
animation又は、animation-nameでアニメーション名を設定し、
@keyframesでキーフレームアニメーションを設定しているにもかかわらず、
アニメーションが動作せず、全て完了状態で表示される。

回答

reset.css(リセットCSS)を設定している場合に、表示する個別のパソコン端末やモバイル端末ごとに、
アニメーションが動作する端末や、動作しない端末が、端末設定により発生します。

以下2つの条件を満たす場合に、アニメーションが動作しません(完了状態になる)

1.reset.cssに、以下のような記述がある
@media(prefers-reduced-motion:reduce) {
  * {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    ・・・
  }
}

2.端末の設定が、アニメーションを表示しない設定になっている
・Windows10の場合
  設定⇒簡単操作⇒ディスプレイ⇒アニメーションを表示する
  がオフになっている

・Androidの場合
  設定⇒ユーザー補助⇒アニメーションを無効化
  がオンになっている

・iOSの場合
  設定⇒一般⇒アクセシビリティ⇒視差効果を減らす
  がオンになっている
  又は、省エネモードになっている

ソース

CSSのprefers-reduced-motion は、
ユーザーが余計な動きを最少化するよう要求したかどうかです。

prefers-reduced-motion:no-preference
システムが把握している設定をユーザーが行っていないことを示す

prefers-reduced-motion:reduce
アニメーションの種類を削除したり置き換えたりする希望をユーザーがシステムに設定したこと示す