【コピペで使える】CSSアニメーション実装まとめ(サンプルコード付き)
近年では、Webサイトに動きを加えるアニメーションの活用が一般的になりつつあります。中でも重要な要素に動きをつけることで、ユーザーの関心を引いたり、ページを飽きずに読み進めてもらうための工夫として有効です。
そこで本記事では、表現しづらい「動きのニュアンス」に焦点を当て、シンプル・ポップ・スタイリッシュ・柔らかい印象など、イメージ別にのコードを紹介します。
すべてデモとサンプルコード付きで掲載しているので、気に入った動きをそのままコピーしてすぐに導入できます。
今回紹介するアニメーションは、多くがCSSのanimation
プロパティを用いて実装されています。記事の前半では、基本的な書き方についても簡単に解説しています。
補足:アニメーションの追加について
この章では、以下のHTML・CSSをベーススタイルとして、さまざまなCSSアニメーションを加えていきます。
ただし、アニメーションの種類によってはこのベースを使用せず、独自のHTML・CSSとセットで記載する場合もあります。その際は、サンプルコード内にHTMLとCSSの両方を記載します。
また、サンプルコードではベンダープレフィックス(-webkit-, -moz-など)を省略しています。必要に応じて環境に合わせて追加してください。
html
<div class=”anim-box”></div>
——
css
.anim-box {
background: linear-gradient(to right, #362ae0 0%, #3b79cc 50%, #42d3ed 100%);
border-radius: 5px;
max-width: 400px;
height: 250px;
}
【解説】CSS animation
プロパティの基本
この記事で紹介するアニメーションは、主にCSSのanimation
プロパティを使用しています。
このプロパティをあまり使い慣れていない方は、ぜひここで基本を押さえておきましょう。
animation
の書き方(ショートハンド)
CSSでは、以下のように複数のアニメーション設定を1行にまとめて記述できます。これをショートハンド記法と呼びます。
この記述を個別に分けると、以下のようになります↓
1項目ずつ書くと理解しやすい反面、コードが長くなりがちなので、慣れてきたらショートハンドでの記述が便利です。
各プロパティの解説
animation-name
アニメーション名を指定します。
事前に以下のように@keyframes
で定義した名前を使用します。
animation-duration
アニメーションの再生時間を設定します。単位はs
(秒)またはms
(ミリ秒)で指定します。
例:1s
, 500ms
animation-timing-function
動きの速さの変化(イージング)を指定します。主な値:
-
ease
:自然な加速と減速(初期値) -
ease-in
:ゆっくり始まる -
ease-out
:ゆっくり終わる -
ease-in-out
:ゆっくり始まり、ゆっくり終わる(より滑らかな動き) -
linear
:一定の速さで進行 -
steps()
:コマ送り風の動き
カスタムイージングには cubic-bezier()
も利用可能です。
animation-delay
アニメーションの開始を遅らせる時間を設定します。
正の値で遅延、負の値で途中から再生することもできます。
例:0.5s
, -1s
animation-iteration-count
アニメーションの繰り返し回数を設定します。指定できる値:
-
数値(例:
1
,3
,0.5
) -
infinite
(無限ループ)
animation-direction
アニメーションの再生方向を制御します。
-
normal
:順方向に再生(初期値) -
reverse
:逆方向に再生 -
alternate
:順方向 → 逆方向 → 順方向…と交互に再生 -
alternate-reverse
:逆方向 → 順方向 → 逆方向…と交互に再生
animation-fill-mode
アニメーションの開始前・終了後に、どのスタイルを適用するかを決めます。
-
none
:アニメーション外では何も適用しない(初期値) -
forwards
:終了後のスタイルを保持 -
backwards
:開始前に最初のスタイルを適用 -
both
:forwards
とbackwards
の両方を適用
以上の基本コードを認識した上で、次は、実装したいアニメーションを選びcssを参考にしてみてください。
目次
-
シンプル・綺麗・分かりやすい系
-
フェードイン
-
スライドイン
-
ズームイン
-
-
ポップ・元気な印象
-
バウンド(ぽよよんと跳ねる)
-
ななめから出現
-
ポップアップ表示
-
リズミカルな収縮アニメ
-
-
スタイリッシュ・スピーディー
-
きらりと光る演出
-
流れる背景色
-
文字がぬるりと出現
-
背景色が消えてから表示
-
ラインが伸びる動き
-
-
かわいい・柔らかい印象
-
フェードアップ
-
緩やかなボーダー出現
-
スムーズに表示される文字
-
ゆったりスクロールボタン
-
ふわふわ揺れる演出
-
回転しながらの登場
-
①【シンプル・わかりやすい・きれい】定番のCSSアニメーション3選
ここでは、コーポレートサイトやサービスサイトなど、幅広い用途に使えるスタンダードなCSSアニメーションをご紹介します。
どれも導入しやすく、UI演出の第一歩としておすすめです。
1. フェードイン
概要:
ページの読み込み時やスクロール時に、要素がふわっと表示される定番アニメーション。
迷ったときはこれを使えば間違いありません。
サンプルコード:
2. スライドイン
概要:
左右から要素が順に出るアニメーション。
見出しやテキストブロックに動きを加えたいときに便利です。
サンプルコード:
3. ズームイン
概要:
要素が拡大しながら表示されるアニメーション。
CTAボタンやバナーなど、注目させたい要素に最適です。スライダー画像などに応用することで、よりリッチな演出も可能です。
サンプルコード:
.anim-box.poyopoyo {
animation: poyopoyo 2s ease-out infinite;
opacity: 1;
}
@keyframes poyopoyo {
0%, 40%, 60%, 80% {
transform: scale(1.0);
}
50%, 70% {
transform: scale(0.95);
}
}
③【スタイリッシュ・かっこいい・スピーディー】洗練されたCSSアニメーションまとめ
動きにスピード感と洗練さを加えたいときに活躍する、スタイリッシュなアニメーションを厳選して紹介します。
ボタン・見出し・ビジュアルエリアなど、印象づけたい要素にぜひ活用してみてください。
1. きらんと光る(ホバーアニメーション)
カーソルを合わせた時に、要素の上を斜めに光が走るアニメーションです。
ボタンやバナーのホバーエフェクトを、よりリッチで目を引く印象に仕上げます。
2. 背景色が流れてくる(マスキングテープのような)
背景色が左から右へ広がるように表示されるアニメーション。
キャッチコピーやタイトルに使うと、デザイン性がぐっと上がります。
3. 文字がぬるりと現れる(matrix + transition)
下からテキストが滑らかに現れるアニメーション。
背景がなくても雰囲気が出せるため、シンプルで洗練された印象に仕上がります。
※ matrix()
は translateY()
を含む6つの変形値をまとめて扱える関数です。
4. 背景色が消えてから文字が出る(マスク効果)
テキストにかぶるように背景色が下から上へスライドし、退けたあとにテキストが現れます。
5. 線が伸びる(シンプルな横線アニメーション)
中央から左右に向かって線が広がる演出。
見出しやボタンの下線演出、ローディングバーにも応用可能です。
④【かわいい・柔らかい印象】優しい動きのCSSアニメーション集
女性向け・美容系・育児系など、穏やかで親しみやすいデザインが求められる場面で活躍する、ふんわり可愛らしいアニメーションをご紹介します。
1. フェードアップ
フェードイン+スライドインの組み合わせ。
動きに程よい存在感を持たせながらも、優しい印象を演出します。
2. ボーダーが緩やかにつく
四方の枠線がふわっと伸びて表示されます。
コンテンツ枠に使うとやさしいアクセントになります。
3. 文字が滑らかに表示される
clip-path
を使用し、文字がスッと表示される印象を与えます。
落ち着いた印象の見出しやロゴに最適。
4. ゆったりスクロールボタン
「Scroll」を促すためのアニメーション。
縦長サイトやフルスクリーンのMV下に設置すると効果的です。
5. ふわふわ揺れる
アイコンなどがやわらかく揺れる演出。
イラストやデコレーションパーツに使うと癒し系の印象を与えられます。
6. くるくる回りながら出現
回転しながらふわっと登場するアニメーション。
アイコンやナンバーの出現におすすめ。
いかがでしたか?実装したいアニメーションを選び、ぜひcssコードを参考にしてみてください。