VIDEO LESSON

CSSのanimation-fill-modeの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画

再生時間 7:12動画を別のタブで開く ↗
動画の字幕・文字起こしを読む

再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。

  1. 0:00こんにちは。
  2. 0:00シーエスエス、リファレンス解説です。
  3. 0:03今回のテーマは、アニメーション・フィル・モードです。
  4. 0:07このプロパティが担当するのは、アニメーションが動いている最中ではなく、その「前」と「後」です。
  5. 0:13開始までの遅延の間、どんな姿で待つのか。
  6. 0:16再生が終わったあと、最後の姿のまま止まるのか、元の姿に戻るのか。
  7. 0:20それを決めるのがフィル・モードです。
  8. 0:23値は、ノン、フォワーズ、バックワーズ、ボウスの四つです。
  9. 0:27再生中の動きそのものは、キーフレームと再生時間で決まります。
  10. 0:31フィル・モードは、その外側の時間の見た目を整える指定だと考えてください。
  11. 0:36順番に、違いと効く条件を見ていきましょう。
  12. 0:39四つの値を整理します。
  13. 0:41ノンは、初期値でもある指定で、アニメーションの前後にはキーフレームを当てません。
  14. 0:48遅延中も終了後も、要素本来のスタイルで表示されます。
  15. 0:52フォワーズは「後ろ」担当で、再生が終わっても、最後のキーフレームの姿をそのまま保ち続けます。
  16. 1:00バックワーズは「前」担当で、開始までの遅延の間、最初のキーフレームの姿を先取りして当てます。
  17. 1:08そしてボウスは、バックワーズとフォワーズの両方、つまり前も後ろもキーフレームで埋める指定です。
  18. 1:16名前の通り、前後の空白をフィル、つまり埋めるのが、このプロパティの役目です。
  19. 1:22書き方を確認します。
  20. 1:24対象の要素を選ぶセレクター、中括弧、プロパティ名、コロン、値、セミコロンの順です。
  21. 1:30画面の例では、クラス名デモの要素に、ボウスを指定しています。
  22. 1:35フィル・モードは、アニメーションの一括指定の中に含めて書くこともできます。
  23. 1:41ただ、注意点が一つ。
  24. 1:43一括指定には、省略した関連プロパティを初期値に戻す働きがあるため、一括指定よりも前にフィル・モードを書いてしまうと、
  25. 1:48ノンに戻されて消えてしまいます。
  26. 1:54順序のトラブルを避けるには、実例のように、個別プロパティの行として後ろに書き足すのが安全です。
  27. 2:02前提として、フィル・モードも単独では何も起こしません。
  28. 2:06土台に、キーフレームで定義した動きと、それを再生するアニメーションの指定が必要です。
  29. 2:12記事の例では、横へ一レム移動するスライドインと、不透明度が〇・四から一へ変わるフェードインの、
  30. 2:17二つの動きが用意されています。
  31. 2:21そして、もう一つ大事なのが遅延、ディレイです。
  32. 2:24遅延がゼロなら、アニメーションはすぐに始まるので、「前」の状態を考える場面がそもそも生まれません。
  33. 2:32バックワーズやボウスの効果が見えるのは、遅延のあるアニメーションのときだと覚えてください。
  34. 2:38実例です。
  35. 2:39デモという要素に、スライドインを一秒、イーズ、遅延〇・三秒、一回だけ、というアニメーションを指定し、
  36. 2:46最後の行でフィル・モードをボウスにしています。
  37. 2:52時間の流れで見てみましょう。
  38. 2:55ページを開いた直後の〇・三秒間は遅延中です。
  39. 2:59ボウスにはバックワーズの働きが含まれるので、この間、要素はフロムの姿、つまり移動前の位置で待機します。
  40. 3:08再生が始まって一秒動き、終わったあとは、フォワーズの働きで、トゥーの姿、
  41. 3:13右へ一レムずれた位置に留まり続けます。
  42. 3:18前と後、両方ともキーフレームで埋まるわけです。
  43. 3:22最後の行の値をノンに置き換えて、比べてみます。
  44. 3:26ノンでは、再生が終わった瞬間に、要素は本来のスタイルへ戻ります。
  45. 3:32今の例では、右へ一レムずれた位置から、元の位置へぱっと戻って見えるはずです。
  46. 3:39一方、「前」の違いには条件があります。
  47. 3:42遅延中に当てるのはフロムの姿ですが、フロムと要素本来の姿が同じなら、ノンでもボウスでも見た目は変わりません。
  48. 3:52たとえばフェードインのように、フロムの不透明度が〇・四で本来の姿と違う動きでは、
  49. 3:58遅延中、薄い姿で待つか、本来の濃さで待つか、はっきりした差になります。
  50. 4:05誤解しやすい点を押さえます。
  51. 4:07フォワーズで終了後の姿が保たれるといっても、それはアニメーションが当てた状態が表示され続けるだけで、
  52. 4:14要素の元のシーエスエス宣言や、エイチティーエムエルの属性が書き換わるわけではありません。
  53. 4:21開発者ツールでスタイルズを見ても、宣言そのものは元のままです。
  54. 4:26また、保たれている状態は絶対ではありません。
  55. 4:29あとから別のアニメーションが始まったり、より強い指定が来たりすれば、そちらに置き換わります。
  56. 4:36終わったあともカスケードの中にいる、という感覚で捉えてください。
  57. 4:41重なりの変化など、周囲への影響が気になるときも、この前提で確認すると整理しやすくなります。
  58. 4:48基本情報を整理します。
  59. 4:49初期値はノンです。
  60. 4:51何も指定しなければ、アニメーションの前後にキーフレームは当たらず、終了後は本来の姿に戻ります。
  61. 4:57継承はしません。
  62. 4:58親要素にボウスを指定しても、子要素のアニメーションの前後までは変わらないので、
  63. 5:02目的の要素それぞれに指定します。
  64. 5:06複数のアニメーションを同時に使う場合は、カンマ区切りで動きごとに指定することもできます。
  65. 5:13また、ほかのプロパティと共通の値として、親の計算値を使うインヘリット、初期値に戻すイニシャルなども指定できますが、
  66. 5:18普段は四つの値で十分です。
  67. 5:23効かないと感じたら、順番に確かめます。
  68. 5:25第一に、そもそも出番があるかです。
  69. 5:28遅延がなく、アニメーションが繰り返し再生され続ける設定では、前後の空白そのものが発生しません。
  70. 5:35第二に、書き方の順序です。
  71. 5:37一括指定のアニメーションより前にフィル・モードを書くと、初期値のノンに巻き戻されます。
  72. 5:43そして、スタイルシートが読み込まれているか、セレクターが合っているかを確認し、
  73. 5:49スタイルズで宣言に打ち消し線が付いていないか、コンピューテッドで最終的な値を見ます。
  74. 5:55動きを減らす設定向けに、アニメーション自体を止める指定が入っている場合は、
  75. 5:59フィル・モード以前に、動きそのものが無効になっています。
  76. 6:04ブラウザー互換性です。
  77. 6:05アニメーション・フィル・モードは、クロームが四十三以降、エッジが十二以降、
  78. 6:10ファイアフォックスが十六以降、サファリが九以降で対応しています。
  79. 6:15モバイルでは、アンドロイド版クローム四十三以降、アイオーエス版サファリ九以降が目安です。
  80. 6:21さらに、ボウスやノンといった値自体は、クローム三以降、ファイアフォックス五以降、
  81. 6:25サファリ五以降と、ずっと古い時代から扱えます。
  82. 6:29現在の主要ブラウザーでは接頭辞なしで問題なく使えるので、期待と違う動きをしたときは、
  83. 6:34互換性よりも、遅延や繰り返しの条件、指定の順序を先に疑いましょう。
  84. 6:39練習とまとめです。
  85. 6:41まず、ボウスとノンで、遅延中と終了後の姿がどう違うかを、自分の言葉で説明してみてください。
  86. 6:47次に、記事のサンプルで、最後の行の値だけを一つずつ変えて、ブラウザーを再読み込みしながら結果を比べます。
  87. 6:54一度にいくつも書き換えず、一つ変えて、一つ確かめるのが上達の近道です。
  88. 6:58関連するプロパティとして、遅延を決めるディレイ、再生と停止を切り替えるプレイ・ステートの記事もあわせてどうぞ。
  89. 7:06今回の要点は、フィル・モードは、アニメーションの前と後をキーフレームで埋める指定、
  90. 7:09です。
日本語字幕をダウンロード(WebVTT)

この動画で学べること

animation-fill-modeの役割と主な指定値を解説。遅延中と終了後の位置がキーフレームに従って保たれるかを比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。

解説記事・サンプルコードを読む:CSSのanimation-fill-modeの使い方:指定値・実例・効かない原因とブラウザー互換性 →