【CSS入門】transitionで要素を簡単アニメーション

更新日:

この記事では時間的変化を指定するCSSのtransitionに関連するプロパティについて解説します。

transitionとは?

時間的変化を一括指定できるショートハンドです。プロパティの値は順不同で半角スペース区切りで指定でき、transition-duration(変化の時間)以外は省略して書く事も出来ます。

省略した値はそのプロパティのデフォルト値が適用されます。transition-property(適用プロパティ名)を省略すると、指定されているすべての値に対して時間的変化が設定されます。

CSS

transition: 適用プロパティ名 変化の時間 変化の仕方 変化までの時間;
 
transition: color 0.5s ease-in-out 0s;

transitonを定義した要素に対してhover時の値を設定することで、アニメーションしながら値を変化させます。

transitionプロパティ詳細

transitionで使用するプロパティは以下の通りです。

  • transition-property
  • transition-duration
  • transition-timing-function
  • transition-delay

transition-property

transition効果を適用するプロパティ(background-colorなど)を指定します。

transition-propertyに指定できる値は以下の通りです。

説明
all デフォルト。すべてのプロパティに適用
none 変化しない
プロパティ名 効果を適用するプロパティを指定。カンマ(,)区切りで複数の指定が可能

実際に使用するときは以下のように記述します。

この場合「ホバーするとwidthが250pxから300pxになる」と指定したことになります。

HTML

<div class="BOX"></div>

CSS

.BOX{
  width:250px;
  height:250px;
  transition-property: width;
}

/*transitonの最終値は:hoverに書く*/
.BOX:hover{
  width: 300px;
}
BOX
※マウスホバーしてください

transition-duration

durationとは日本語で「時間の期間」という意味で、transition効果の開始から完了までにかかる時間を指定します。

transition-durationに指定できる値は以下の通りです。

説明
0s デフォルト。瞬時に変化する
○s かかる時間を秒数で指定。1秒=1s

実際に使用するときは以下のように記述します。

この場合「ホバーすると3秒かけてwidthが250pxから300pxになる」と指定したことになります。

HTML

<div class="BOX"></div>

CSS

.BOX{
  width:250px;
  height:250px;
  transition-property: width;
  transition-duration: 3s;
}

/*transitonの最終値は:hoverに書く*/
.BOX:hover{
  width: 300px;
}
BOX
※マウスホバーしてください

transition-timing-function

変化の仕方を指定します。

transition-timing-functionに指定できる値は以下の通りです。

説明
ease デフォルト。開始と完了が滑らか
linear 一定の速度で変化
ease-in 変化がゆっくり始まる
ease-out 変化がゆっくり終わる
ease-in-out 変化がゆっくり始まってゆっくり終わる
cubic-bezier(数値, 数値, 数値, 数値) 変化の仕方を微調整する

実際に使用するときは以下のように記述します。

HTML

<div class="BOX-A"></div>
  <div class="BOX-B"></div>

CSS

/* デフォルト */
.BOX-A{
  width:250px;
  height:250px;
  transition-property: width;
  transition-duration: 3s;
}

.BOX-A:hover{
  width: 300px;
}

/* ease-in(ゆっくり始まる) */
.BOX-B{
  width:250px;
  height:250px;
  transition-property: width;
  transition-duration: 2s;
  transition-timing-function: ease-in;
}

.BOX-B:hover{
  width: 300px;
}
デフォルト

ease-in(変化がゆっくり始まる)

※マウスホバーしてください

transition-delay

delayとは日本語で「遅らせる」という意味で、transition効果が開始されるまでの待ち時間を指定します。

マイナスの値を指定すると、変化が完了した時点から開始します。transition-delayに指定できる値は以下の通りです。

説明
0s デフォルト。瞬時に変化する
○s かかる時間を秒数で指定。1秒=1s

実際に使用するときは以下のように記述します。

この場合、「ホバーまで2秒待機してからwidthが250pxから300pxになるよ」と指定したことになります。

HTML

<div class="BOX-A"></div>
  <div class="BOX-B"></div>

CSS

/* デフォルト */
.BOX-A{
  width:250px;
  height:250px;
  transition-property: width;
}

.BOX-A:hover{
  width: 300px;
}

/* 2秒後に開始 */
.BOX-B{
  width:250px;
  height:250px;
  transition-property: width;
  transition-delay: 2s;
}

.BOX-B:hover{
  width: 300px;
}
デフォルト

2秒後に変化開始

※マウスホバーしてください

まとめ

このプロパティは、要素の変化を指定するtransformと一緒に使われる事が多いので、そちらも勉強するようにしましょう。

CSS関係の記事は他にも書いているので、宜しければそちらもチェックしてみてください。

【完全初心者向け】CSSについての超簡単まとめ

WEBサイトを作る上で、HTMLと並んで絶対に欠かせない言語といえばCSS。 この記事ではCSSについてなるべく難しい言葉を使わずに、でも要点は抑えて解説していこうと思います。是非肩の力を抜いて読み進 ...

続きを見る

【CSS入門】box-shadowで目指せ影マスター

この記事ではCSSのbox-shadowプロパティについて解説します。 Contentsbox-shadowとは?box-shadow詳細基本的な書き方影の色を指定影をぼかす影の広がりを調整影を内側に ...

続きを見る

【CSS入門】text-shadowで目指せ影マスター

この記事ではCSSのtext-shadowプロパティについて解説します。 Contentstext-shadowとは?text-shadow詳細基本的な書き方影の色を指定影をぼかすまとめ text-s ...

続きを見る

【CSS入門】linear-gradientで線形グラデーションを極めよう

この記事ではCSSのlinear-gradientプロパティについて解説します。 Contentslinear-gradientとは?linear-gradient詳細基本的な書き方方向を指定する角度 ...

続きを見る

【CSS入門】radial-gradientで円形グラデーションを極めよう

この記事ではCSSのradial-gradientプロパティについて解説します。 Contentsradial-gradientとは?radial-gradient詳細基本的な書き方形を指定するサイズ ...

続きを見る

【CSS入門】transformで要素を拡大縮小・回転・傾斜・移動しよう

この記事ではCSSのtransformプロパティについて解説します。 Contentstransformとは?transformの使い方scale()translate()rotate()skew() ...

続きを見る

【CSS入門】@keyframesとanimationで複雑なアニメーションを作ろう

この記事ではtransitionよりも複雑なアニメーションを指定できるCSSのanimationに関連するプロパティについて解説します。 Contentsanimationとは?@keyframesa ...

続きを見る

-CSS

Copyright© Web Emo , 2024 All Rights Reserved.