System

コピペでもOK!初心者向けCSSアニメーションのanimation編【Lesson3】

CSSアニメーションanimation
Loa

animationでできることとは?

CSSアニメーションにはtransitionとanimationの2種類がありましたね。

前回は「初心者向けCSSアニメーションのtransition編【Lesson2】」の記事でtransitionでできることについてご紹介しました。

今回はアニメーション初心者の方に向けて、animationについて詳しく解説しようと思います。

animationを使うことでさらに複雑なアニメーションを作ることができます!

では一緒にanimationの構造を詳しく見ていきましょう。



animationにできること

animationは、アニメーションの時間経過を指定することができます。

tranditionよりもさらに細かく動作指定をすることができるため、上級者によく使われています。

複雑なアニメーションを作りたいときや、時間によって変化をさせたいときにanimationを使います。

プロパティの数も多く、組み合わせも様々なのでオリジナルのアニメーションを作ることができます。

animationの構造を理解する

animationのは、大きく9種類に分類されますが、全て覚えなくても大丈夫です。

基本的にはanimationにまとめて書きます。

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

★マークのanimationより下の☆マーク8つは、animationを分けて書く時に使うものです。

普段はanimationだけを使いますが、複数のアニメーションを作りたい時や個別に指定したい時に☆マークの8つを使います。

また、キーフレームアニメーションを適用する場合には「@keyframes」で定義する必要があります。

ではそれぞれのプロパティの概要を詳しく見ていきましょう。

animation-name

アニメーションの名前を設定します。

自分がわかりやすい名前がオススメです。

これは必ず英語表記で書くようにしましょう。(アルファベットであればOKです)

animation-duration

アニメーション1回の間隔(時間)を設定します。

これはtransition-durationと同じようにmsやsの単位で指定します。

@keyframeの0~100%の間のアニメーションの時間を示していて、書かない場合は0秒となります。

単位 長さ
ms ミリセカンド。10ms=1秒。
s セカンド。1s=1秒。

animation-timing-function

アニメーションを動かすタイミングを設定します。

これもtransition-timing-functionと同じように指定します。

プロパティ 働き方
ease (初期値)
linear 一定の速さ
ease-in 始めをゆっくり
ease-out 終わりをゆっくり
ease-in-out 始めと終わりをゆっくり
step-start 始まり時を終わりの時点に
step-end 終わり時を終わりの時点に

特に特殊な動きを指定しない場合はlinear(初期値)で大丈夫です。

animation-delay

アニメーションの遅れる時間を設定できます。

これもanimation-durationと同じようにs,msで指定します。

このプロパティを使うと時間差のあるアニメーションも作ることができます。

animation-iteration-count

アニメーションを繰り返す回数を設定します。

1回の時は1、10回の時は10、無限ループの時はinfiniteで指定します。

複数の指定を一括で記述するときはカンマで区切ります。

animation-direction

アニメーションを再生する進行方向を設定します。

プロパティ 働き方
normal (初期値)
reverse 逆方向
alternate 初回は順方向でその後反転
alternate-reverse 初回は逆方向でその後反転

これはどの方向から始めるかを簡単に指定することができます。

使う頻度は少ないですが、覚えておくと便利です。

animation-fill-mode

アニメーションの開始前・実行後で指定したプロパティを適用するかを設定します。

プロパティ 働き方
none (初期値)
forwards 実行後に適用
backwards 開始前に適用
both 前後どちらとも適用

forwardsは最後の状態を保ち、backwardsは開始地点の状態を保ちます。

これもそれほど使うものではないですがこういうプロパティもあります。

animation-play-state

アニメーションを再生か一時停止かを設定します。

プロパティ 働き方
running 再生中(初期値)
paused 停止中

これはアニメーションを動かしたり止めたりするのに便利な機能です。

これらのプロパティを組み合わせて使うことで、たくさんの面白い動きを作ることが可能になりました。

animationでアニメーションを作る

では実際にanimationを使って一緒に実装してみましょう。

今回も初心者の方でもわかりやすいように、ボタンを使って解説していきます。

See the Pen
ボタンアニメーション
by loa (@hana4525)
on CodePen.

これは@keyframeを使って横に伸びるようなアニメーションをループ再生させています。

簡単に解説すると、横にのびる動きをyurayuraという名前で定義して、それを2秒間隔で繰り返すアニメーションです。

animationでは「どのような動きをどのように動かすか」を組み合わせてアニメーションを作っていきます。

これだけでもちょっと面白い動きを作れそうですよね。

まとめ

animationの構造もなんとなく理解いただけたでしょうか。

今回の記事でCSSアニメーションの基礎的な解説は終わりになります。

これまで解説したものを組み合わせていくことで、より複雑で高度なアニメーションを作ることができます。

WEBデザインやコーディングをする方にとっては、アニメーションが強い武器となりますので是非たくさんのアニメーションを積極的に取り入れていきましょう♪

このサイト内でもアニメーションのいろいろな使い方を紹介しているので、参考にしてみてください。

これから先もどんどん新しいCSSのオプションが追加されていくと思うので、その時はまた解説してみたいと思います。

Loa

最後までご覧いただきありがとうございました☆彡



関連するタグ