VIDEO LESSON

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

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

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

  1. 0:00こんにちは。
  2. 0:00シーエスエス、リファレンス解説です。
  3. 0:03今回のテーマは、トランジション・タイミング・ファンクションです。
  4. 0:07前回は、変化が始まるまでの待ち時間、ディレイを取り上げました。
  5. 0:12今回は、変化が始まってから終わるまでの「速さの変わり方」を決めるプロパティです。
  6. 0:17たとえば、同じ四百ミリ秒でボタンが少し上へ動くとしても、最初から最後まで同じ速さなのか、
  7. 0:23ゆっくり動き出して、ゆっくり止まるのかで、見た目の印象は大きく変わります。
  8. 0:29その違いを作る指定を、順番に見ていきましょう。
  9. 0:32位置づけを確認します。
  10. 0:34トランジションには、対象を決めるプロパティ、変化にかける時間を決めるデュレーション、
  11. 0:40進み方を決めるタイミング・ファンクション、始まるまでの待ち時間を決めるディレイの四つがありました。
  12. 0:46一括指定では、時間を二つ書くと一つ目がデュレーション、二つ目がディレイにあたり、
  13. 0:51イーズ・イン・アウトのような値がタイミング・ファンクションにあたります。
  14. 0:56画面の例では、背景色と位置の変化に、四百ミリ秒、イーズ・イン・アウトが指定されています。
  15. 1:02進み方だけを差し替えたいときは、今回の個別プロパティで指定するのが確実です。
  16. 1:07書き方を見てみましょう。
  17. 1:09セレクターで要素を選び、トランジション・タイミング・ファンクションに、進み方を表す値を指定するだけです。
  18. 1:18仕様上の初期値はイーズで、つまり何も書かなければ、イーズの進み方が自動で使われています。
  19. 1:25これまで意識せずに滑らかな変化を見ていた場合も、実はこのイーズが効いていた、
  20. 1:29ということです。
  21. 1:32また、このプロパティは継承しません。
  22. 1:35親に書いても子には効かないので、変化させたい要素自身に指定してください。
  23. 1:41この後の例では、まずリニアを指定するところから始めます。
  24. 1:46代表的な値を見ていきます。
  25. 1:48リニアは、最初から最後まで一定の速さで進みます。
  26. 1:52等速なので、機械的ではっきりした動きになります。
  27. 1:56イーズ・インは、ゆっくり始まってだんだん速くなる進み方。
  28. 2:01イーズ・アウトはその逆で、速く始まってゆっくり止まります。
  29. 2:06イーズ・イン・アウトは、始まりと終わりの両方が緩やかで、真ん中が速い進み方です。
  30. 2:13そして初期値のイーズは、緩やかに始まって、終わりに向けて緩やかになる、標準的な進み方です。
  31. 2:20まずはこのキーワードから使い分けるのが、初心者にはおすすめです。
  32. 2:26応用的な値も紹介します。
  33. 2:27キュービック・ベジェは、加減速の曲線、専門的にはイージング曲線と呼ばれるものを、
  34. 2:32四つの数値で細かく指定する方法です。
  35. 2:36数値によっては、行き過ぎてから戻ってくるような、弾む動きも作れます。
  36. 2:42もう一つのステップスは、変化をなめらかにつなげず、指定した段数で、カクカクと段階的に進める指定です。
  37. 2:50コマ送りのような表現に使われます。
  38. 2:52どちらも表現の幅は広がりますが、最初はキーワードの違いを確かめることを優先し、
  39. 2:57必要になってから手を出すくらいで十分です。
  40. 3:02記事の活用例を見てみましょう。
  41. 3:04薄い緑色のボタンが用意され、背景色と位置の変化に、四百ミリ秒のトランジションが指定されています。
  42. 3:11ホバー、またはキーボードのフォーカスが当たると、背景がオレンジ寄りの色になり、
  43. 3:14ボタンが少し上へ移動します。
  44. 3:18注目は最後の行、トランジション・タイミング・ファンクション、リニアです。
  45. 3:23上の行ではイーズで指定されていた進み方が、この行で上書きされ、両方の変化が一定の速さで進むようになります。
  46. 3:31どの行が進み方を決めているのかを意識しながら読むと、コードの構造がつかめます。
  47. 3:36違いを確かめるには、最後の行の値だけをイーズ・イン・アウトに置き換えます。
  48. 3:42ポイントは、デュレーションを四百ミリ秒のまま、そろえることです。
  49. 3:48合計の時間も、移動する距離も同じ。
  50. 3:50違うのは、その中での速さの配分だけです。
  51. 3:54リニアでは最初から最後まで同じペースで進むのに対して、イーズ・イン・アウトでは、
  52. 4:00動き出しと終わり際が緩やかになり、全体にやわらかい印象になります。
  53. 4:06記事の比較も、この値一つだけを変える方法で行われています。
  54. 4:11複数の指定を一度に変えないことが、違いを正しく確かめるコツです。
  55. 4:16間違えやすい点を確認します。
  56. 4:18デュレーションを変えると、変化にかかる合計の時間そのものが長くなったり短くなったりします。
  57. 4:25一方、タイミング・ファンクションを変えても、合計の時間は変わりません。
  58. 4:30変わるのは、その時間の中で、どの区間を速く進み、どの区間をゆっくり進むかという配分です。
  59. 4:37列車に例えると、所要時間がデュレーションで、駅の間での加速や減速のしかたがタイミング・ファンクション、
  60. 4:43とイメージすると区別しやすいでしょう。
  61. 4:48比較実験では、デュレーションを固定して進み方だけを変えるのが鉄則です。
  62. 4:53使いどころを考えましょう。
  63. 4:56ボタンやメニューのような短い変化では、両端が緩やかな進み方にすると、操作に自然に追随している印象になります。
  64. 5:04逆に、リニアの等速は、進捗バーのような、一定であること自体に意味がある場面に向いています。
  65. 5:12なお、対象ごとに進み方を変えたい場合は、値をカンマで区切って、対象の並び順に対応させることもできます。
  66. 5:20あわせて、端末の「動きを減らす」設定が有効な人には、メディアクエリでトランジション自体を止める配慮も、
  67. 5:25記事の例に含まれています。
  68. 5:31効かないときの確認です。
  69. 5:32進み方は、変化そのものがあって初めて意味を持ちます。
  70. 5:36まず、トランジションの対象とデュレーションが指定され、ホバーなどで実際に値が変わっているかを確認してください。
  71. 5:44特に、デュレーションがゼロのままだと、変化は一瞬で終わり、進み方の違いは見えません。
  72. 5:51また、値の綴りを間違えた宣言は、無効として丸ごと無視されます。
  73. 5:55開発者ツールでは、スタイルズで宣言が打ち消されていないか、コンピューテッドで最終的な進み方を確認する順番が有効です。
  74. 6:04スタイルシート自体の読み込み確認も忘れずに。
  75. 6:07ブラウザー互換性は良好です。
  76. 6:09プロパティ自体は、クローム、エッジ、ファイアフォックス、サファリのいずれも、
  77. 6:13かなり前のバージョンから接頭辞なしで使えます。
  78. 6:16リニアやイーズ・イン・アウトといった値に限れば、さらに古いバージョンから対応しています。
  79. 6:22まとめると、タイミング・ファンクションは、合計の時間の中で、速さの変わり方を決める指定です。
  80. 6:28初期値はイーズ、継承はしません。
  81. 6:30練習として、リニアとイーズ・イン・アウトの違いを、自分の言葉で説明してみてください。
  82. 6:35次回は、変化にかける時間そのものを決める、トランジション・デュレーションを取り上げます。
  83. 6:41お疲れさまでした。
日本語字幕をダウンロード(WebVTT)

この動画で学べること

transition-timing-functionの役割と主な指定値を解説。一定の速さと、始まりと終わりが緩やかな動きを比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。

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