CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSアニメーションで画像を無限に回転させる方法【初心者向け】

CSSのanimationプロパティを使えば、画像を連続的に回転させることができます。このチュートリアルでは、初心者の方にもわかるよう、手順を一つずつ丁寧に解説していきます。

HTMLマークアップの準備

まず、画像と属性を含むHTMLマークアップを用意します。

<img
  src="https://jp.wsxdn.com/UploadFiles_5590/202203/2022033109325250.png"
  class="rotate linear infinite"
  width="150"
  height="150"
/>

ブラウザで表示すると、画像は次のように見えます。

CSSアニメーションで画像を無限に回転させる方法【初心者向け】

3つのクラスの役割

ご覧のとおり、img要素にはrotatelinearinfiniteという3つのクラスが指定されています。CSS側では、それぞれのクラスに対して宣言ブロックを作成していきます。このようなクラスは「ユーティリティクラス」や「ヘルパークラス」と呼ばれることもありますが、役割がひとつずつ明確なので、筆者は「単一目的(single-purpose)クラス」と呼ぶのが好きです。

ステップ1:rotateクラスでアニメーションを定義する

まずは.rotateのコードブロックを宣言します。

.rotate {
  animation: rotation 2s;
}

この段階ではまだ何も起こりません。animationプロパティで指定したrotationというアニメーションの中身を定義する必要があるためです。スタイルシートに次の@keyframesルールを追加しましょう。

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}

ここでブラウザを再読み込みすると、画像が2秒(2s)かけて1回だけ回転するのが確認できます。しかし、これだけでは目標達成には足りません。「連続的に回転し続ける」ようにしつつ、デフォルトのイージング(ease)ではなく、一定速度で動くlinearへタイミング関数を変更する必要があります。

ステップ2:linearクラスで等速回転にする

次の.linear宣言ブロックをスタイルシートに追加します。

.linear {
  animation-timing-function: linear;
}

再読み込みすると、画像が最初から最後まで一定の速度で回転するようになります。

ステップ3:infiniteクラスで無限ループさせる

最後に、.infiniteクラスのコードブロックを宣言して、画像を無限に回転させましょう。

.infinite {
  animation-iteration-count: infinite;
}

これで完成です。等速のアニメーションカーブで、無限に回転し続ける画像ができあがりました。

CSSアニメーションで画像を無限に回転させる方法【初心者向け】

完全なコードはCodePenでも確認できます。

1行でまとめて書く方法

なお、アニメーション関連のプロパティをすべて1行・1クラスにまとめて記述することも可能です。

.rotate-image {
  animation: rotation 2s linear infinite;
}

上記の書き方はコード量を大幅に減らせますが、学習や教育の場面では、個々のコンポーネントがどう組み合わさって動作するのかを理解しやすくするため、小さな単位に分解して説明するほうが効果的だと筆者は考えています。

さまざまなアニメーションカーブ

アニメーションの速度カーブには、デフォルトのeaseや今回使用したlinear以外にも多数の種類があります。cubic-bezierを使えば、より凝った動きも表現できますが、その詳細はまた別のチュートリアルで紹介したいと思います。

  1. HTML5でSVG画像を使用する方法|img・object・embedタグの使い分けを解説

    HTML5でSVG画像を表示する基本 HTML5でSVG(Scalable Vector Graphics)画像を利用するには、<img>要素または<svg>要素を使用します。SVGファイルをWebページに組み込む方法は主に3つあり、それぞれ特徴が異なるため、用途に応じて適切なものを選択することが重要です。 SVGを読み込む3つの方法 <img>タグ:最もシンプルな方法。JPEGやPNGなどの通常の画像と同じ感覚で扱えます。 <object>タグ:外部リソースとしてSVGを読み込みます。フォールバックコンテンツを指定できるのが特徴です。 &l

  2. Google翻訳で画像を瞬時に翻訳する方法|カメラ翻訳の使い方を徹底解説

    Google翻訳は、言語間翻訳の分野における先駆者であり、国と国の溝を埋め、言語の壁を乗り越える取り組みを牽引してきました。翻訳アプリの優れた機能のひとつが「画像内のテキストを翻訳できる」ことです。カメラを知らない言語のテキストに向けるだけで、Google翻訳が自動的に文字を認識し、自分が理解できる言語へ翻訳してくれます。看板やメニュー、説明書を読む際に非常に役立つこの機能は、異国の地を訪れたときにはまさに命綱となる存在です。この機能がGoogle翻訳に搭載されたのは比較的最近ですが、その基盤となる技術自体は2年以上前から存在していました。AIによる画像認識を活用する「Googleレンズ」など