【CSS】transitionプロパティでアニメーションをつける

2023年6月30日

transitionプロパティでアニメーションをつけるだけで見た目が全然変わります。

このようなハンバーガーメニューやボタンを作ってみました。

しかしこのようにパッと三本線がバツになったり、急にナビゲーションが現れると違和感がありますね。

このようにアニメーションさせてみるといかがでしょう。

先程のような違和感はなくなりました。

こちらのボタンもパッと色が変化します。
こちらもよくある表現ですが

ボタン

このようにふわっと変化させるとずいぶん雰囲気が変わります。

これらは【CSS】のtransitionプロパティでアニメーションをさせて変化をつけています。

今回はtransitionプロパティについて学んでいきましょう。

スポンサーリンク

transitionプロパティは変化にアニメーションをつけることができる

transition-property:適用するところを指定する

transition-propertyはどこに適用するのかを指定します。

「transition-property:color;」とするとテキストの色だけがアニメーションします。

このようにテキストカラーだけにtransitionが適用されています。
「transition-property:all;」と指定すると変化する箇所全てに適用されます。

transition-duration:どのくらいの長さで変化するか

transition-durationではどのくらいの長さでアニメーションするか指定できます。

「transition-duration: 1s;」とすると1秒でアニメーションします。

transition-delay:どのくらい遅らせるか

transition-delayではその変化をどのくらい遅らせるか指定できます。

今回の記述ではこのようになっています

<HTML>

<a href="#" class="btn line"><span>READ MORE</span></a>

<CSS>

.btn {
  background-color:teal;
  display: inline-block;
  padding: 10px 30px;
  color: #fff;
  border: 1px solid #ccc;
  text-decoration: none;
  outline: none;
}

/*hoverしたときのボタン*/
.btn:hover {
  background-color: #fff;
  color: teal;
  border: 1px solid teal;
  transition-duration: 0.6s;
  transition-delay: .5s;
  transition-property:all;
}

「transition-delay: .5s;」と指定するとマウスオーバーしてから0.5秒遅れてアニメーションさせることができます。

マウスオーバーしてから色が変化するまでに少し時間がありますね。

「hover」させる前と「hover」させた後両方にtransitionを適用すると、マウスオーバーしたときふわっと色が変わってマウスアウトしたときふわっと色が戻ります。

.btn {
  background-color:teal;
  display: inline-block;
  padding: 10px 30px;
  color: #fff;
  border: 1px solid #ccc;
  text-decoration: none;
  outline: none;
  transition-duration: 0.6s;
  transition-property:all;
}

/*hoverしたときのボタン*/
.btn:hover {
  background-color: #fff;
  color: teal;
  border: 1px solid teal;
  transition-duration: 0.6s;
  transition-property:all;
}

transition-timing-function:動きに変化をつける

「transition-timing-function:linear;」は一定の速度でアニメーションします。

「transition-timing-function:ease;」ではアニメーションを滑らかに変化させます。

ショートハンド

ショートハンドで一度に指定することもできます。
「transition: property duration delay timing-function」と一度に記述することもできます。

「transition: all 0.6s 0.5s ease-in;」

まとめ

transitionプロパティ

transitionは変化にアニメーションをつけるプロパティ

transition-property:どこに適用するか指定する

transition-duration:アニメーションの長さを指定する

transition-delay:どのくらい遅らせるか指定

transition-timing-function:動きに変化をつける

ショートハンドで一度に指定することもできる

**********

参考にした書籍

jQueryやCSSでさまざまな動きの実装の仕方を分かりやすく解説してくれている本です

「動くWebデザインアイデア帳」

同じカテゴリの記事一覧へ

HTML &CSS

Posted by sweetchilli