CSSアニメーションの基本!@keyframesを使った動きの作り方を解説
CSSアニメーションとは
アニメーションとは、要素に動きの効果を持たせ、見た目を時間の経過とともに変化させる仕組みのことです。CSSはさまざまなアニメーション効果をサポートしており、JavaScriptなどを使わなくても、要素の色やサイズ、位置などを滑らかに変化させることができます。
キーフレーム(@keyframes)の役割
CSSのアニメーションでは、「キーフレーム(Keyframes)」という重要な概念が使われます。@keyframesを定義することで、アニメーションの開始時点から終了時点までの中間ステップを細かく制御でき、複雑な動きも表現可能になります。
記述例
以下の例では、@keyframesの構文を使って、アニメーションの対象となる要素の高さ・幅・背景色の変化や、アニメーション名・再生時間(duration)の指定方法を示しています。
@keyframes animation {
from {background-color: pink;}
to {background-color: green;}
}
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: animation;
animation-duration: 5s;
}各プロパティの解説
- animation-name:適用する@keyframesの名前を指定します。上記の例では「animation」という名前のキーフレームを呼び出しています。
- animation-duration:アニメーションが1回完了するまでの所要時間を指定します。「5s」の場合、5秒かけて背景色がピンクから緑へと変化します。
このように、@keyframesで「from(開始時)」と「to(終了時)」の状態を定義し、要素側でアニメーション名と再生時間を指定するだけで、シンプルな色変化アニメーションを実装できます。
-
CSSのopacityプロパティでアニメーションを作成する方法
CSSで不透明度(opacity)プロパティにアニメーションを適用するには、@keyframesルールとanimationプロパティを組み合わせて使用します。要素の透明度を時間の経過とともに変化させることで、フェードイン・フェードアウトのような視覚効果を簡単に実現できます。 基本的な仕組み @keyframesでアニメーションの各段階におけるopacityの値を定義し、animationプロパティでそのアニメーションを要素に適用します。以下の例では、3つの重なったボックスを使って、不透明度が変化する様子を確認できます。 サンプルコード <!DOCTYPE html> <htm
-
CSSでmargin-topプロパティをアニメーションさせる方法
CSSでは、@keyframesルールとanimationプロパティを組み合わせることで、margin-topプロパティにもアニメーション効果を適用できます。要素が上下にスムーズに動く演出は、ボタンやバナーなどさまざまな場面で活用できます。 実装のポイント アニメーションを実装する基本的な手順は以下のとおりです。 アニメーションを定義する: @keyframesを使って、任意のキーフレーム(例:30%)でmargin-topの値を指定します。 アニメーションを適用する: 対象の要素にanimationプロパティを設定し、名前・ duration(継続時間)・繰り返し回数を指定します。 サン