2点間のアニメーション - Transitionsモジュール

2点間のアニメーション - Transitionsモジュール

表5:TransitionsモジュールをサポートするWebブラウザとバージョン

Webブラウザ対応するバージョン
Internet Explorer10(予定)
Firefox4.0以上
Chrome4.0以上
Mac OS X Safari3.1以上
Opera10.5以上
iOS Safari3.2以上
Androidブラウザ2.1以上

Transitionsモジュールでは、始点と終点の間のアニメーション処理を行うための、以下のようなプロパティが提供されています。

表6:Transitionsモジュールのプロパティ

プロパティ名意味
transition-property値を変化させるプロパティ名を指定する。デフォルトは指定無し
transition-durationアニメーションの長さを、sを付けて秒数で指定する。デフォルトは0秒(アニメーションしないで瞬時に変化させる)
transition-timing-functionアニメーションする際の変化方法を指定する。デフォルトはease
transition-delayアニメーションを行うまでの遅延を、sを付けて秒数で指定する。デフォルトは0秒(遅延無し)
transition以上のプロパティをまとめて指定する。複数のプロパティ名の指定も可能

まとめて言えば、始点と終点で指定したプロパティのうち「どのプロパティを(transition-property)」「どれだけの時間をかけて(transition-duration)」「どのような変化で(transition-timing-function)」「どれだけの遅延の後に(transition-delay)」行うかを指定する、ということになります。

変化の方法を指定するtransition-timing-functionプロパティでは、以下の値を指定します。

表7:transition-timing-functionプロパティで指定する値

値意味
ease最初と最後がなめらかな動作(デフォルト)
linear直線的な変化
ease-inゆっくり始まる
ease-outゆっくり終わる
ease-in-outゆっくり始まってゆっくり終わる

例えば、CSS3で新しく導入された透過率を表すopacityプロパティを使って、マウスを載せるとフェードアウトして消える四角形を作ってみましょう。

opacityプロパティを使ったフェードアウト(transition-opcaity.html)

  div	{ width: 150px; padding: 10px; background: #00FF00; margin-bottom:100px;}
  ↑見やすくするため緑背景のボックスとする

  div.sample1 {
    opacity: 1.0;                              ← 1.0は完全不透過を表す
    -webkit-transition-property: opacity;      ←opacityプロパティをアニメーション
    -webkit-transition-duration: 5s;           ←5秒間かけてアニメーション
    -webkit-transition-timing-function: linear;←直線的に変化させる
    -webkit-transition-delay: 1s;              ←1秒遅延の後アニメーション
  }
  div.sample1:hover {                          ←マウスを載せた場合
    opacity: 0.0;                              ←0.0は完全透過(透明)を表す
  }
  ・・・
  <div class="sample1">マウスを載せると消えます</div>

以下の図のように、マウスを載せると1秒の遅延の後、opacityプロパティの値が5秒間かけて1.0から0.0へと変化し、div要素がフェードアウトしていきます。

図7:デフォルトの状態(クリックで拡大)図8:マウスを載せた状態。徐々に透明になっていく(クリックで拡大)図9:完全に透明に(クリックで拡大)

transitionsプロパティでまとめ指定も

transitionプロパティを使うと、各プロパティの値をまとめて指定することができます。上記のコードであれば「-webkit-transition: opacity 5s linear 1s;」という指定になります。それぞれの値は最初から順番にtransition-property、transition-duration、transition-timing-function、transition-delayプロパティにそれぞれ対応します。

また、transitionプロパティでは複数のプロパティ値の変化もまとめて指定できます。
以下は、前ページで解説したTransformsモジュールを使ったアニメーションで、背景色(backgroundプロパティ)とX軸に対する回転(transformプロパティのrotateX関数)の値をまとめて変化させています。

複数のプロパティによるアニメーション(transition-opcaity2.html)

  div.sample1 {
    background: #00FF00; ←背景色緑
    -webkit-transition: background 5s linear , -webkit-transform 5s linear;
    ↑backgroundと-webkit-transformの両方を5秒かけてアニメーションする
  } 

  div.sample1:hover { ←マウスを載せた時
    background: #FF0000; ←背景色赤
    -webkit-transform: rotateX(180deg);
    ↑X軸に対して180度回転(要素を裏向きに回転させる)
  }
  ・・・
  <div class="sample1">マウスを載せると色が変わりながら回転します</div>

実行結果は以下のようになります。

図10:デフォルトの状態(クリックで拡大)図11:マウスを載せた状態。色が変わりながら回転している(クリックで拡大)図12:完全に裏向きに回転し、色も赤に変化(クリックで拡大)

まとめ

今回はCSS3の変形機能と、始点終点指定によるアニメーション機能について解説しました。

変形機能は解説を読むだけでは今ひとつピンとこないところがありますので、実際に使って試してみることをお勧めします。Transitionsモジュールによるアニメーションは、2点間のシンプルなアニメーションですが、変形機能、特に特に回転と組み合わせることでかなり目立つ効果が得られます。

サンプル一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。

次回は、キーフレーム間のアニメーションを行うAnimationsモジュールについて解説します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30