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

※この記事にはプロモーションが含まれています。
しゅーた(@chibasyuta)です!
この記事ではCSSの「@keyframes」を使ったアニメーションのつけ方について解説します!丁寧にまとめていくので、興味がある方はぜひご一読ください。
「@keyframes」を使うと繰り返しのアニメーションなど、「transition」プロパティを使うよりも幅の広いアニメーションがつけられます。その分少し使う知識も多いですが、知っておいて損はないと思うし役立つことも多いと思うのでぜひ学習して使ってみてください!
この記事の内容!
- 「@keyframes」を使うと何ができるのか?
- 「@keyframes」の基本的な使い方!
それでは内容へ入ります!
「@keyframes」を使うと何ができるのか?
@keyframes width {
0% {
width: 100px;
}
100% {
width: 900px;
}
}
.box {
animation-name: width;
animation-duration: 2s;
}
「@keyframes」を使うとアニメーションを定義することができます。
そしてその「@keyframes」で作ったアニメーションを「animation-name」などのプロパティで、HTMLの要素に適用してあげれば、作ったアニメーションがその要素につけられる、という仕組みになっているのです。
2段階に分けれらる
「@keyframes」を使ったアニメーションのつけ方には2段階のステップがあります。
- 「@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」と書き換えることができます。
作って学ぶ HTML&CSSモダンコーディング
Flexbox や CSS Grid など、今のCSSの書き方をサンプルサイトを作りながら学べる本です。
Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。
作ったアニメーションを「どう適用するか」の指定方法!
「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)のチェックもお願いします!
それではこんな感じでこの記事を終わります!
ではまた!
動くWebデザインアイディア帳
CSSやJavaScriptで付ける「動き」の実例を、コード付きでたくさん見たい方向けの本です。
Amazonのアソシエイトとして、当ブログは適格販売により収入を得ています。
\ めちゃくちゃ便利です /
毎日の新着を、通知で受け取る
最新の技術の動きを1分で読める記事にして、毎日お届けします。登録は無料で、いつでもやめられます。
iPhone は「ホーム画面に追加」すると通知を受け取れます
iPhone では、Safari で開いたままだと通知を出せない決まりになっています。このブログをホーム画面に置くと、アプリのように通知が届くようになります。下の5つを順番に行ってください。1分ほどで終わり、料金はかかりません。
-
共有ボタンを押す
いま見ているこのページのまま、画面のいちばん下を見てください。真ん中にある四角から上向きの矢印が出ているマークが共有ボタンです。これを1回タップします。
下のバーが見えないときは、画面を指で少し下に動かすと出てきます。
-
「ホーム画面に追加」を選ぶ
画面の下からメニューが出てきます。メニューを指で上に動かして下のほうを表示し、「ホーム画面に追加」(+のマーク)を探してタップします。
見当たらないときは、メニューの中の「その他」や「…」を押すと出てきます。
-
右上の「追加」を押す
「ホーム画面に追加」という画面に変わります。名前は「皇帝ペンギン」のままで大丈夫です。右上の「追加」をタップします。
-
ホーム画面のアイコンから開く
Safari を閉じてホーム画面に戻ると、ペンギンの絵の「皇帝ペンギン」というアイコンが増えています。これをタップして開きます。
ここが大事です。Safari からではなく、必ずこのアイコンから開いてください。
-
「通知をオンにする」→「許可」
開くと、画面の下に「通知をオンにする」という黄色いボタンが出ます。タップすると確認が出るので、「許可」を選びます。「通知をオンにしました」と出たら完了です。
次の日から、新しい記事が出るたびに通知が届きます。やめたいときは、記事の下の「この端末の通知をやめる」を押すか、アイコンを削除してください。
LINE や X のアプリ内で開いている場合は、先に右下や右上のメニューから「Safari で開く」を選んでください。
動画でじっくり学びたい方は YouTube メンバーシップ へ。