1. TOP
  2. お役立ち情報
  3. CSSアニメーションでWebサイトに彩りを!~実際にコードを書いてみよう~

CSSアニメーションでWebサイトに彩りを!
~実際にコードを書いてみよう~

投稿日
2023.04.10
更新日
2023.05.12
CSSアニメーションでWebサイトに彩りを!~実際にコードを書いてみよう~
misono先生

こんにちは!WinスクールのMisonoです。
皆様にとって役立つ情報をお伝えできればと思います。今回はCSSを用いたアニメーションについてご紹介します!

CSSとは?

CSS (Cascading Style Sheets) は、Webページの見た目を構築する言語です。
HTMLに対し、CSSで指定した設定を適用することで、Webページの見た目をデザインすることができます。CSSは1994年にホーコン・ウィウム・リーによって提唱され、1996年に12月に勧告されました。その後上位互換のCSS2が1998年5月、改訂版のCSS2.1が2011年6月に勧告されました。


現在のWebページでは主にCSS3(Cascading Style Sheets, level 3)が使用されています。
CSS3以降はCSS2.1以前と違い、機能別にモジュールという単位で分けられておりどの機能をWebブラウザが持つかどうかを決めることができるようになりました。

現在はCSS4モジュールの策定が進められています。

CSSアニメーションとは?

CSSはアニメーションを実装することもできます。
Webページにおいてアニメーションで何かを表現する場合、これまではgifアニメーション等の方法が用いられていました。

ただアニメーションのデータは容量が大きいためWebページの読み込み速度が遅くなるデメリットがあります。 そのためCSSでアニメーションの設定を行うことによりWebブラウザのパフォーマンス改善、またWebページの容量削減が実現可能です。

【実践】CSSアニメーションの実装方法

HTMLファイルを用意する

まずHTMLファイルを作成します。次にimgタグを用いて画像を表示させます。
※imgタグで指定する画像はどのようなものでも構いません。

<!DOCTYPE html>
<html>
    <head>
        <title>CSSアニメーション</title>
     </head>
    <body>
        <div>ZZZ</div>
        <br>
        <img src="./uin_wait.jpg" />
    </body>
</html>

ブラウザで開くとこのようになります。

このHTMLにCSSアニメーションを追加してみましょう!

CSSアニメーションの追加

アニメーションの設定を追加しましょう。
HTMLの<title>タグの下に<style>タグを追加し、それぞれプロパティを設定します。
※コード5行目~24行目

<!DOCTYPE html>
<html>
    <head>
        <title>CSSアニメーション</title>
        <style>
            div{
                position:relative;        /* 要素の配置を行う                */
                font-size:2rem;           /* 文字の大きさを2remに            */
                animation: infinite;      /* アニメーションを無限に繰り返す    */
                animation-name: sleep;    /* キーフレームの定義。名前はsleep   */
                animation-duration: 2s;   /* アニメーションの周期の長さ。1回2秒 */
            }
            /* アニメーションの設定 */
            @keyframes sleep{
                /* アニメーションの始まり */
                from {
                    top:100px; /* 最初の位置は上から100pxの位置から */
                }
                /* アニメーションの終わり */
                to {
                    top:0px; /* 終わりの位置は上から0pxの位置まで */
                }
            }
        </style>
    </head>

    <body>
        <div>ZZZ</div>
        <br>
        <img src="./uin_wait.jpg" />
    </body>
</html>

記述ができたら保存してWebブラウザで読み込むと、設定したアニメーションが確認できます。

animationプロパティについて

今回使用したCSSのanimationプロパティについて確認しましょう。
animationプロパティはアニメーションを適用するプロパティです。このプロパティは下記プロパティを一括設定できるものです。

プロパティ説明
animation-delayアニメーションをいつ開始するか設定
animation-directionアニメーション再生の向きはどうするか設定
animation-duration1回のアニメーション周期の時間を設定
animation-fill-modeアニメーション再生中と再生後のスタイルを設定
animation-iteration-countアニメーションを実行する回数を設定
animation-nameキーフレームの設定
animation-play-stateアニメーションが再生中、または一時停止か設定
animation-timing-functionアニメーションの変化速度を設定

今回、わかりやすくするため一括指定のanimationと、上記単体のプロパティを複合させる方法を取りました。

では記述したプロパティを確認してみましょう。

animation: infinite;      /* アニメーションを無限に繰り返す    */       
animation-name: sleep;    /* キーフレームの定義。名前はsleep  *j/                
animation-duration: 2s;   /* アニメーションの周期の長さ。1回2秒 */

animationは先述した通り、一括設定のプロパティです。
本来はアニメーションの回数を指定するanimation-iteration-countプロパティの値のinfinte(無限に繰り返す)ですが、animationプロパティで記載することも可能です。

もしanimationプロパティに1行で設定する場合は下記の書き方になります。

animation: infinite sleep 2s;

animationプロパティに慣れてきた場合はこの書き方でもよいでしょう。

また、animationプロパティではなく、animation-iteration-countプロパティを用いた場合は下記の通りです。

animation-iteration-count: infinite;
animation-name: sleep;
animation-duration: 2s;

まとめ

CSSアニメーションを用いることにより、多彩な効果を得ることが可能です。まずは自分でコードを書いて動かしてみましょう。

さまざまなCSSアニメーションを使いこなせるようになればWebページに彩りを添えることができ、コーディングスキルもレベルアップ間違いなしです!

HTML・CSSの基本からレスポンシブデザインまで学べる

ホームページ制作(HTML5 & CSS3・スマホサイト制作)講座の詳細はこちらをチェック!

関連記事