home
twitter
ページトップへ
目次
  • 「@keyframes」を使うと何ができるのか?
  • 2段階に分けれらる
  • 「@keyframes」を使ってアニメーションを定義する方法!
  • 「任意の名前」をつけてアニメーションを「定義」する
  • 「キーフレーム」の指定をする
  • 「キーフレーム」は複数指定できる
  • 「キーフレーム」の「0%」と「100%」を表すキーワードも用意されている
  • 作ったアニメーションを「どう適用するか」の指定方法!
  • 「animation-name」プロパティを使って、どの要素にアニメーションを適用するのか指定する
  • 「animation-duration」プロパティを使って、1回のアニメーションにかかる時間の指定をする
  • 最低限のアニメーションは「animation-name」と「animation-duration」の指定をすればOK!
  • 「アニメーションをどう適用するのか」の指定ができるプロパティはたくさんある
  • 参考リンク!
  • おすすめの再生リスト!
  • まとめ!
about
categories
page
archive
皇帝ペンギンブログ

2024/08/25 (更新日:2024/08/31)

【CSS】「@keyframes」を使ってアニメーションをつける基本的な方法!【分かりやすい】

Categories > CSSのアニメーション編
こんばんは!初めましての方は初めまして!
しゅーた(@chibasyuta)です!

この記事ではCSSの「@keyframes」を使ったアニメーションのつけ方について解説します!丁寧にまとめていくので、興味がある方はぜひご一読ください。

「@keyframes」を使うと繰り返しのアニメーションなど、「transition」プロパティを使うよりも幅の広いアニメーションがつけられます。その分少し使う知識も多いですが、知っておいて損はないと思うし役立つことも多いと思うのでぜひ学習して使ってみてください!

この記事の内容!

  • 「@keyframes」を使うと何ができるのか?
  • 「@keyframes」の基本的な使い方!
また、下の動画でもCSSの「@keyframes」を使ったアニメーションの基本的なつけ方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは内容へ入ります!

目次
非表示
  • 「@keyframes」を使うと何ができるのか?
  • 2段階に分けれらる
  • 「@keyframes」を使ってアニメーションを定義する方法!
  • 「任意の名前」をつけてアニメーションを「定義」する
  • 「キーフレーム」の指定をする
  • 「キーフレーム」は複数指定できる
  • 「キーフレーム」の「0%」と「100%」を表すキーワードも用意されている
  • 作ったアニメーションを「どう適用するか」の指定方法!
  • 「animation-name」プロパティを使って、どの要素にアニメーションを適用するのか指定する
  • 「animation-duration」プロパティを使って、1回のアニメーションにかかる時間の指定をする
  • 最低限のアニメーションは「animation-name」と「animation-duration」の指定をすればOK!
  • 「アニメーションをどう適用するのか」の指定ができるプロパティはたくさんある
  • 参考リンク!
  • おすすめの再生リスト!
  • まとめ!

「@keyframes」を使うと何ができるのか?

https://chibasyuta.org/wp-content/uploads/2024/08/use-keyframes_new.mp4
@keyframes width {
    0% {
        width: 100px;
    }
    100% {
        width: 900px;
    }
}
.box {
    animation-name: width;
    animation-duration: 2s;
}

「@keyframes」を使うとアニメーションを定義することができます。

そしてその「@keyframes」で作ったアニメーションを「animation-name」などのプロパティで、HTMLの要素に適用してあげれば、作ったアニメーションがその要素につけられる、という仕組みになっているのです。

2段階に分けれらる

「@keyframes」を使ったアニメーションのつけ方には2段階のステップがあります。

  • 「@keyframes」を使ってアニメーションを定義する
  • そのアニメーションを「どう適用するか」の指定をする
この2段階のステップを踏むというのが「@keyframes」の基本的な使い方になります!
なるほど分かりやすい!

「@keyframes」を使ってアニメーションを定義する方法!

それでは「@keyframes」を使ってアニメーションを定義する方法についてまとめていきますね!

「任意の名前」をつけてアニメーションを「定義」する

@keyframes width {
    0% {
        width: 100px;
    }
    100% {
        width: 900px;
    }
}

「@keyframes」を使ってアニメーションを定義する際にはそのアニメーションに「任意の名前」をつけることができます。

アニメーションを定義するには、上のように書けばOKです!

「@keyframes」と書いた後に、任意の名前をつけることができます。今回は「width」という名前のアニメーションネームにしました!分かりやすいものを自分でつけてあげてください!

「キーフレーム」の指定をする

@keyframes width {
    0% {
        width: 100px;
    }
    100% {
        width: 900px;
    }
}

「キーフレーム」の指定をすることでアニメーションの途中経過のスタイルの指定ができます。

「0%」や「100%」の部分が「キーフレーム」ですね。

これを定義することでアニメーションの完成度合いの中の「0%地点でのスタイル」と「100%地点でのスタイル」を指定します。

このキーフレームによって具体的にどんなアニメーションにするのかの指定ができる感じです。

「キーフレーム」は複数指定できる

@keyframes width {
    0% {
        width: 100px;
    }
    75% {
        width: 300px;
    }
    100% {
        width: 900px;
    }
}

「キーフレーム」は「0%」と「100%」の他にも「75%」など複数の途中経過の指定ができます。

つまり2個以上の「キーフレーム」の指定をしてあげればOKということです!

「キーフレーム」の「0%」と「100%」を表すキーワードも用意されている

@keyframes width {
    0% {
        width: 100px;
    }
    100% {
        width: 900px;
    }
}

@keyframes width {
    from {
        width: 100px;
    }
    to {
        width: 900px;
    }
}

アニメーションの始点である「0%」と、終点の「100%」は重要なので、それを表す「キーワード」も用意されています。

上に書いた2つのアニメーションはどちらも同じものを表しています。お好みでこれらのキーワードも使ってみてください!

「0%」は「from」と書き換えれますし、

「100%」は「to」と書き換えることができます。

作ったアニメーションを「どう適用するか」の指定方法!

それでは作ったアニメーションを「どう適用するか」の指定方法!をまとめていきますね!

「animation-name」プロパティを使って、どの要素にアニメーションを適用するのか指定する

@keyframes width {
    from {
        width: 100px;
    }
    to {
        width: 900px;
    }
}
.box {
    animation-name: width;
    animation-duration: 2s;
}

「animation-name」プロパティを使って、どの要素にアニメーションを適用するのか指定します。

「animation-name」プロパティを使わないと、ただアニメーションを定義しただけになってしまうので、作ったアニメーションが使われない感じになってしまします。作って満足せず、しっかり適用したい要素に指定しましょう!

「animation-duration」プロパティを使って、1回のアニメーションにかかる時間の指定をする

@keyframes width {
    from {
        width: 100px;
    }
    to {
        width: 900px;
    }
}
.box {
    animation-name: width;
    animation-duration: 2s;
}

「animation-duration」プロパティを使うと、1回のアニメーションにかかる時間の指定をすることができます。

「animation-duration」の初期値は「0s」なので、しっかり指定しないとアニメーションっぽくすることができないので注意してください!

最低限のアニメーションは「animation-name」と「animation-duration」の指定をすればOK!

最低限のアニメーションをつけるには下記の2つのプロパティの指定が必要です。

  • 「animation-name」
  • 「animation-duration」

これら2つのプロパティの設定をしておけば、最低限のアニメーションはつけられます。なのでこれらの設定をするのが基本形ということですかね。

「アニメーションをどう適用するのか」の指定ができるプロパティはたくさんある

「animation-name」と「animation-duration」だけでなく「アニメーションをどう適用するのか」の指定ができるプロパティはたくさんあります。

それらは下記の通りです。

  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-fill-mode
  • animation-play-state
  • animation-timing-function

これらのプロパティの使い方は、また別の記事で解説しようと思います。この記事は基本的なアニメーションのつけ方だけ扱いますね。

参考リンク!

仕様書。
https://drafts.csswg.org/css-animations/

MDN。
https://developer.mozilla.org/ja/docs/Web/CSS/animation

おすすめの再生リスト!

僕はYouTubeでプログラミングの解説をしているのですが、こちらは再生リスト「CSSのアニメーション編」です。

「CSSのアニメーション編」はCSSを使ったアニメーションの知識が網羅的に学習できるコンテンツとなります。

こちらの再生リストでCSSアニメーションについて丁寧に解説しているので、もし気になる方はチェックしてみてください!一緒に楽しく学習しましょう!!

まとめ!

「@keyframes」を使うとアニメーションを定義することができる。

「@keyframes」を使ったアニメーションのつけ方には下記の2段階のステップがある。

  • 「@keyframes」を使ってアニメーションを定義する
  • そのアニメーションを「どう適用するか」の指定をする

「任意の名前」をつけてアニメーションを「定義」することが可能。

アニメーションは「キーフレーム」の指定をする形で定義する。

「キーフレーム」は複数指定できる。

「キーフレーム」の「0%」と「100%」を表すキーワードも用意されている。

「animation-name」プロパティを使うと、どの要素にアニメーションを適用するのか指定することができる。

「animation-duration」プロパティを使うと、1回のアニメーションにかかる時間の指定をすることができる。

最低限のアニメーションは「animation-name」と「animation-duration」の指定をすればOK!

「アニメーションをどう適用するのか」の指定ができるプロパティはたくさんある。

それらは下記の通りです。

  • animation-name
  • animation-duration
  • animation-delay
  • animation-iteration-count
  • animation-direction
  • animation-fill-mode
  • animation-play-state
  • animation-timing-function
こんな感じですかね!

この記事が気に入った方は僕のTwitter(@chibasyuta)のチェックもお願いします!

また、下の動画でもCSSの「@keyframes」を使ったアニメーションの基本的なつけ方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それではこんな感じでこの記事を終わります!

ではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.