JITERA

お問い合わせ

CSSアニメーション一覧!種類や作り方を解説!サンプル20選を紹介!

ウェブページに動きを加えることで、よりおしゃれで見栄えの良いサイトを作成できるようになります。

この記事ではCSSアニメーションの基本から応用までを幅広く紹介し、実際に使えるサンプルについて解説していきます。

初心者の方でも参考にできる記事となっていますので、ぜひ参考にしてみてください。

アバター画像
hiro1120_writer

システム開発経験(Java, PHPによる開発及びリーダー経験あり)

CSSアニメーションの概要

CSSアニメーションはウェブページに動的な要素を加えることでユーザーの注目を集めたり、サイトのインタラクティビティを向上させたりするために有効な手段です。

この技術は、JavaScriptなどのスクリプト言語を使用せずにCSSのみで要素を動かすことが可能で、ウェブデザインにおいて重要な役割を果たしています。

CSSアニメーションの基本的な概念には、状態の変化に応じて要素のスタイルを時間経過とともに変化させる「transition」や、より複雑なアニメーションを実現するための「@keyframes」と「animation」プロパティなどが含まれます。

これらの技術を駆使することで、フェードイン、スライド、回転、色の変化などのさまざまなアニメーション効果を実現することができます。

CSSアニメーションとは何か?

CSSアニメーションとは、ウェブページのHTML要素に動きや変化を加えるためのCSSの機能です。

これにより、テキスト、画像、ボタンなどの要素を時間の経過とともに変化させることができ、ページに動的な要素を追加することが可能になります。

CSSアニメーションは、@keyframesルールを使用してアニメーションの中間状態を定義し、animationプロパティを使用してアニメーションを要素に適用します。

また、よりシンプルなアニメーションにはtransitionプロパティが使用されており、要素の状態変化を滑らかにすることができます。

CSSアニメーションのメリット

CSSアニメーションの最大のメリットは、JavaScriptを使用せずに複雑なアニメーションを実装できる点です。

これにより、学習コストが低くウェブ開発の初心者でも比較的簡単にアニメーションを追加することができます。

また、CSSアニメーションはブラウザによるハードウェアアクセラレーションの恩恵を受けることが多く、JavaScriptによるアニメーションと比較してパフォーマンスが向上する場合があります

さらに、CSSアニメーションはレスポンシブデザインにも対応しており、さまざまなデバイスや画面サイズで一貫したアニメーションを提供することができます。

しかし、デメリットとしてはアニメーションの発火条件をJavaScriptで制御する必要がある場合があり、複雑なアニメーションを実装する際にはコード量が増加する傾向にある点が挙げられるでしょう。

CSSアニメーションの種類

CSSアニメーションはウェブページに動きを加えるための手段の1つで、サイトにさまざまな動的なアクションを付与することができます。

CSSアニメーションには様々な種類があり、それぞれがウェブデザインに独自の魅力やブランドイメージをもたらしてくれます。

ここでは、CSSアニメーションの主要な種類について、特徴と実装方法について詳しく説明していきます。

フェードイン・フェードアウト

フェードイン・フェードアウトは、要素を徐々に表示または非表示にするアニメーションです。

この効果は、opacityプロパティとtransitionまたは@keyframesanimationプロパティを組み合わせて実現されます。

例えば、ある要素をフェードインさせるには、初期状態でopacity: 0;を設定し、アニメーションの終了状態でopacity: 1;にします。

スライドイン・スライドアウト

スライドイン・スライドアウトアニメーションは、要素を画面内に滑らかに移動させる効果です。

このアニメーションは、transformプロパティのtranslateX()またはtranslateY()関数を使用して実装されます。

例えば、左から右へのスライドインは、transform: translateX(-100%);からtransform: translateX(0);への変化で実現できます。

このアニメーションは、ナビゲーションメニューや隠れたコンテンツの表示によく使用されます。

拡大・縮小

拡大・縮小アニメーションは、要素のサイズを変更することで動きを加える効果です。

transformプロパティのscale()関数を使用して、要素のサイズを変更します。

例えば、マウスオーバー時に要素を拡大表示するには、transform: scale(1);からtransform: scale(1.1);への変化を設定します。

このアニメーションは、ボタンや画像ギャラリーなどのインタラクティブな要素に適しています。

回転

回転アニメーションは、要素を中心軸を基準に回転させる効果です。

これはtransformプロパティのrotate()関数を使用して実装され、例えばtransform: rotate(0deg);からtransform: rotate(360deg);への変化で、要素を一周させることができます。

ローディングインジケータやアイコンのインタラクションなど様々な場面で活用されます。

色の変化

色の変化アニメーションは、要素の色を時間の経過とともに変更する効果です。

background-colorcolorプロパティをtransition@keyframesと組み合わせて使用します。

例えば、ボタンのホバー効果として、background-color: #FF0000;からbackground-color: #0000FF;への変化を設定することができます。

このアニメーションは、ユーザーのアクションに対してのフィードバックとして有効です。

テキストのアニメーション

テキストアニメーションは、文字列に動きを加える効果です。

@keyframesanimationを使用して、テキストの色、サイズ、位置などを変更することができます。

例えば、テキストがタイピングされているような効果や文字が一文字ずつ表示されるアニメーションなどがありますが、この種のアニメーションは見出しやキャッチコピーなど、注目を集めたいテキストに適しています。

その他のエフェクト

CSSアニメーションは、上記の基本的な種類に限定されません。

複数のアニメーション効果を組み合わせたり、clip-pathfilterなどのCSSプロパティを活用することで、よりユニークなアニメーションを実現することができます。

例えば、画像にぼかし効果を加えたり要素を特定の形にクリップすることで、目を引くビジュアルエフェクトを作り出すことなども可能です。

業務効率化システムを開発したいなら「ジテラ」へ!他社より1.4倍速い開発、お返事は3日以内、開発知識ゼロでもOK!、お見積りは無料。お見積りは無料!

CSSアニメーションの作り方

CSSアニメーションを作成する過程は、ウェブページに動的な要素を加えるために必要なプロセスです。

このプロセスでは、基本的な構造の理解から始まり、キーフレームの定義、そしてアニメーションの適用方法の習得に至ります。

CSSアニメーションの作り方を学ぶことで、ウェブデザイナーや開発者よりユーザーを楽しませ惹きつけるコンテンツを作成できるようになります。

ここでは、CSSアニメーションを作成するための基本的なステップについて説明し、実際の例を通じてその適用方法を紹介していきます。

基本構造と記述方法

CSSアニメーションの基本構造は、アニメーションを定義するための@keyframesルールとそのアニメーションをHTML要素に適用するためのanimationプロパティから成り立っています

@keyframesルールでは、アニメーションの開始から終了までの各段階でのスタイルを定義します。

例えば、ある要素を透明から不透明に変化させるアニメーションを作成する場合、以下のように@keyframesルールを記述します。

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

この例ではfadeInという名前のアニメーションが定義されており、fromキーワードでアニメーションの開始状態(透明度0)、toキーワードで終了状態(透明度1)を指定しています。

このようにしてアニメーションの各段階でのスタイルを定義することで、複雑なアニメーション効果を作成することが可能になります。

キーフレームの使用方法

キーフレームは、CSSアニメーションにおいてアニメーションの中間状態を定義するために使用されます。

@keyframesルール内でパーセンテージを使用して、アニメーションの進行度に応じたスタイルを指定することができます。

例えば、要素を左から右に移動させるアニメーションを作成する場合、以下のようにキーフレームを定義することができます。

@keyframes slideIn {
0% { transform: translateX(0); }
100% { transform: translateX(100px); }
}

この例では、アニメーションの開始時点(0%)で要素が元の位置にあり、終了時点(100%)で要素が水平方向に100ピクセル移動していることを示しています。

キーフレームを使用することで、アニメーションの途中で要素の位置やサイズ、色などのスタイルを細かく制御することができ、動的で魅力的なアニメーションを作成することが可能になります。

アニメーションの適用方法

アニメーションをHTML要素に適用するには、animationプロパティを使用します。

このプロパティでは、使用するキーフレームの名前、アニメーションの持続時間、タイミング関数、遅延時間、繰り返し回数など、アニメーションのさまざまな側面を指定することができます。

先ほど定義したfadeInアニメーションを適用する例を以下に示します。

.element {
animation: fadeIn 2s ease-in-out;
}

この例では、.elementクラスを持つ要素にfadeInアニメーションを適用しています。

アニメーションは2秒間持続し、ease-in-outタイミング関数によって開始と終了が滑らかになります。

animationプロパティを使用することで、定義したアニメーションを柔軟に要素に適用してウェブページに動的なインタラクションを追加することができます。

サンプルCSSアニメーションの一覧

CSSアニメーションは、ウェブページに動きを与えてくれる手段の1つです。

フェードイン・フェードアウトからスライド、拡大・縮小、回転、色の変化、テキストアニメーション、そしてその他多くのエフェクトまでさまざまです。

ここではこれらのアニメーション効果のサンプルを紹介し、それぞれの実装方法について解説していきます。

フェードイン・フェードアウトのサンプル

フェードイン・フェードアウトは要素が徐々に表示されたり消えたりするアニメーションで、ユーザーの注意を引きつけるのに最適です。

以下のサンプルでは、@keyframesを使用してフェードイン・フェードアウトのアニメーションを作成します。

@keyframes fadeInOut {
0%, 100% { opacity: 0; }
50% { opacity: 1; }
}
.element {

animation: fadeInOut 3s infinite;
}

このコードは、要素が3秒間で完全に不透明になりその後再び透明に戻るアニメーションを作成します。

infiniteキーワードにより、このアニメーションは無限に繰り返されます。

スライドイン・スライドアウトのサンプル

スライドイン・スライドアウトアニメーションは、要素が画面内に滑り込んでくるかのように見せる効果です。

以下のサンプルでは、要素が左から右へスライドインするアニメーションを作成します。

@keyframes slideIn {
from { transform: translateX(-100%); }
to { transform: translateX(0); }
}
.element {

animation: slideIn 1s forwards;
}

このアニメーションでは、要素が画面の左端からスタートし、1秒かけて元の位置に戻ります。

forwardsキーワードは、アニメーションが終了した後も要素を最終状態に保持します。

拡大・縮小のサンプル

拡大・縮小アニメーションは、要素のサイズを変更することで視覚的なインパクトを与えるものです。

以下のサンプルでは、マウスホバー時に要素が拡大するアニメーションを実装します。

.element {
transition: transform 0.5s ease;
}
.element:hover {

transform: scale(1.2);
}

このコードは、.elementにマウスをホバーすると要素が原寸の1.2倍に拡大することを示しています。

transitionプロパティにより、この変化は0.5秒かけて滑らかに行われます。

回転のサンプル

回転アニメーションは、要素を中心軸を基準に回転させる効果です。

以下のサンプルでは、要素が無限に回転するアニメーションを作成します。

@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.element {

animation: rotate 2s linear infinite;
}

このアニメーションでは、要素が2秒間で一周回転し、infiniteによりこの動きが繰り返されます。

色の変化のサンプル

色の変化アニメーションは、要素の背景色やテキスト色を時間の経過とともに変更します。

以下のサンプルでは、背景色が徐々に変化するアニメーションを実装します。

@keyframes colorChange {
0% { background-color: red; }
50% { background-color: blue; }
100% { background-color: green; }
}
.element {

animation: colorChange 3s infinite;
}

このコードは、要素の背景色が3秒間で赤から青へ、そして緑へと変化することを示しています。

infiniteにより、この色の変化は繰り返されます。

テキストのアニメーションのサンプル

テキストアニメーションは、テキストの表示方法を動的に変更することで注目を集める効果があります。

以下のサンプルでは、テキストがタイプされているように見せるアニメーションを実装します。

@keyframes typing {
from { width: 0; }
to { width: 100%; }
}
.element {

overflow: hidden;
white-space: nowrap;
border-right: 3px solid black; /* カーソルのように見せる */
width: 0;
animation: typing 5s steps(40, end) forwards;
}

このアニメーションでは、steps関数を使用してテキストが一文字ずつ表示されるように見せています。

forwardsはアニメーション終了後もテキストを表示状態に保持します。

その他のエフェクトのサンプル

CSSアニメーションは、上記の基本的なエフェクトに限定されません。

複数のアニメーションを組み合わせたり創造的なアイデアを形にしたりすることで、ユニークなエフェクトを生み出すことができます。

例えば、要素が画面に現れる際に跳ねるようなアニメーション背景にグラデーションが徐々に変化するアニメーションなど、試してみる価値のあるアイデアは数え切れません。

あらゆるアニメーションを試してみて、独自のアニメーションを発見していくのもよいかもしれません。

CSSアニメーションの応用

CSSアニメーション技術を応用することで、ウェブサイトやオンライン広告はユーザーにより強い印象を与え、エンゲージメントを高めることも可能です。

ここでは、CSSアニメーションをウェブサイトや広告に適用する際の具体的な例とその効果について解説していきます。

ウェブサイトへの適用例

ウェブサイトにCSSアニメーションを適用することで、訪問者の注意を引きサイトの使いやすさを向上させることができます。

例えば、ナビゲーションメニューにスライドインアニメーションを適用することで、ユーザーがメニュー項目を選択する際の操作を滑らかで使いやすいものに変えることができます。

また、スクロールに応じてコンテンツがフェードインするアニメーションは、ユーザーがページを下に移動するにつれて新しい情報を目にできる楽しさを提供してくれます。

さらに、ボタンやリンクにホバーエフェクトを加えることで、より動的なアクションが可能になるのでユーザーエンゲージメントを高めることができます。

例として、ユーザーがボタンにカーソルを合わせるとボタンが軽く拡大し色が変わるというようなアニメーションを設定することなどが挙げられます。

広告やバナーでの活用

CSSアニメーションは、オンライン広告やバナーにおいても大きな効果を発揮します。

アニメーションを使用することで、広告の視認性を高めてユーザーの注意を引きつけることができます。

例えば、プロモーション広告において特定の商品やオファーを強調するために、アイテムが画面内に回転しながら現れるアニメーションを設定することができます。

このような動的な要素は静的な広告よりもユーザーの目を引きやすく、クリックスルーレートの向上に役立ちます

また、期間限定のセールやイベントを告知するバナーにおいてカウントダウンアニメーションを使用することで、緊急性を高め、ユーザーの行動を促すこともできます。

このように、CSSアニメーションを活用することで、広告コンテンツをより魅力的で効果的なものに変えることが可能です。

CSSアニメーションのまとめ

CSSアニメーションは、ウェブページに動きを加える効果的な手段です。

本記事では、フェードイン・アウト、スライド、拡大・縮小、回転、色変化、テキストアニメーションなど、様々なアニメーションの種類とその作り方を解説してきました。

CSSアニメーションはサイトに動きをつけて未勅的なコンテンツにできるだけでなく、内容によってはJavascriptなどの言語を用いることなく簡単に実装できる場合があります。

また、できるだけ処理自体が軽くなるように実装することも可能となるため、見た目だけでなく性能面でもメリットがみこめるかもしれません。

この記事で紹介してきたことを参考に、自身のウェブプロジェクトにCSSアニメーションを取り入れ、より魅力的なコンテンツ制作へとしていきましょう。

CSSなどのデザイン関連、プログラム言語などのシステム開発関連についてお悩みの方は、Jitera社に一度ご相談してみてはいかがでしょうか。

Jiteraのリンク:https://jitera.com/ja/insights/contact2

アバター画像
hiro1120_writer

システム開発経験(Java, PHPによる開発及びリーダー経験あり)

コスト削減も課題解決も同時に実現

「JITERA」で迅速
ソフトウェア開発

開発を相談する
Recommended articles for you

Discover more of
what matters to you

email-img
メルマガ登録
JITERA社内で話題になった生成AIトレンドをいち早くお届けします。
Thank you!

Jiteraのメールマガジン登録が完了しました。