CSSアニメーションの基礎:animation-duration プロパティで動きをデザインしよう

2024-04-02

CSSアニメーションの持続時間:animation-duration プロパティ

使い方

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

@keyframes my-animation {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

上記例では、element クラスに 2 秒間のアニメーション my-animation を適用しています。

プロパティの詳細

    • 時間:s または ms 単位で指定できます。例:2s1000ms
    • infinite:アニメーションを無限に繰り返します。
  • 初期値
    • 0s:アニメーションは発生しません。
  • 継承
    • いいえ
  • 適用対象
    • すべての要素

補足

  • animation-duration は、@keyframes ルールと組み合わせて使用します。
  • アニメーションのタイミング関数は、animation-timing-function プロパティで設定できます。
  • アニメーションの開始タイミングは、animation-delay プロパティで設定できます。
  • アニメーションの繰り返し回数は、animation-iteration-count プロパティで設定できます。
  • アニメーションの速度は、animation-durationanimation-timing-function プロパティの組み合わせで調整できます。
  • アニメーションをより複雑にするには、複数の @keyframes ルールを組み合わせることができます。

  • 画面にフェードインする要素:
.element {
  animation: fade-in 2s ease-in;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
  • 要素を左右に移動するアニメーション:
.element {
  animation: move-左右 2s linear infinite;
}

@keyframes move-左右 {
  0% {
    left: 0;
  }
  50% {
    left: 50%;
  }
  100% {
    left: 0;
  }
}

animation-duration プロパティは、CSSアニメーションの持続時間を設定する重要なプロパティです。このプロパティを使いこなすことで、さまざまなアニメーションを作成することができます。



CSSアニメーションの持続時間(animation-duration)サンプルコード

.fade-in {
  animation: fade-in 2s ease-in;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.fade-out {
  animation: fade-out 2s ease-out;
}

@keyframes fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

上下左右に移動するアニメーション

.move-up-down {
  animation: move-up-down 2s linear infinite;
}

@keyframes move-up-down {
  0% {
    top: 0;
  }
  50% {
    top: 50%;
  }
  100% {
    top: 0;
  }
}

.move-left-right {
  animation: move-left-right 2s linear infinite;
}

@keyframes move-left-right {
  0% {
    left: 0;
  }
  50% {
    left: 50%;
  }
  100% {
    left: 0;
  }
}

回転アニメーション

.rotate {
  animation: rotate 2s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

拡大・縮小アニメーション

.scale-up {
  animation: scale-up 2s ease-in-out;
}

@keyframes scale-up {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}

.scale-down {
  animation: scale-down 2s ease-in-out;
}

@keyframes scale-down {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}

複雑なアニメーション

.complex-animation {
  animation: complex-animation 4s linear infinite;
}

@keyframes complex-animation {
  0% {
    opacity: 0;
    transform: scale(0) rotate(0deg);
  }
  25% {
    opacity: 1;
    transform: scale(1) rotate(90deg);
  }
  50% {
    opacity: 1;
    transform: scale(1) rotate(180deg);
  }
  75% {
    opacity: 1;
    transform: scale(1) rotate(270deg);
  }
  100% {
    opacity: 0;
    transform: scale(0) rotate(360deg);
  }
}

アニメーションの速度調整

.slow-animation {
  animation: slow-animation 4s linear infinite;
}

@keyframes slow-animation {
  /* アニメーション内容 */
}

.fast-animation {
  animation: fast-animation 1s linear infinite;
}

@keyframes fast-animation {
  /* アニメーション内容 */
}

アニメーションのタイミング関数

.ease-in {
  animation: ease-in 2s ease-in;
}

@keyframes ease-in {
  /* アニメーション内容 */
}

.ease-out {
  animation: ease-out 2s ease-out;
}

@keyframes ease-out {
  /* アニメーション内容 */
}

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

@keyframes ease-in-out {
  /* アニメーション内容 */
}

アニメーションの繰り返し回数



CSS アニメーションの持続時間(animation-duration)を設定するその他の方法

@keyframes ルール内で、各キーフレームのタイミングを指定することで、アニメーションの持続時間を間接的に設定できます。

.element {
  animation: my-animation 2s linear;
}

@keyframes my-animation {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

上記例では、my-animation アニメーションは 2 秒間で実行されますが、50% の時点で透明度が 1 になり、その後 100% までの 1 秒間かけて透明度が 0 になります。

transition プロパティは、要素の状態変化に伴うアニメーションを定義します。

.element {
  transition: opacity 2s linear;
}

/* マウスホバー時に要素の透明度を変更 */
.element:hover {
  opacity: 0.5;
}

上記例では、element 要素の透明度が変化する際、2 秒間かけてアニメーションされます。

JavaScript を使用して、アニメーションの持続時間を動的に設定することも可能です。

const element = document.querySelector('.element');

// 2 秒間かけて要素をフェードイン
element.animate({
  opacity: 1,
}, {
  duration: 2000,
});

上記コードは、element 要素を 2 秒間かけてフェードインさせるアニメーションを作成します。

animation-duration プロパティ以外にも、状況に応じて上記のような方法を検討することで、より柔軟なアニメーション表現が可能になります。




ゲーム理論:ビジネス、政治、日常生活に潜む戦略的思考

ゲーム理論の基本的な要素は以下の3つです。プレイヤー: 意思決定を行う主体戦略: プレイヤーが選択できる行動の選択肢利得: プレイヤーが各戦略を選択したときの得られる利益ゲーム理論は、これらの要素を数学的なモデルを用いて分析することで、プレイヤーがどのような戦略を選択するのか、どのような結果になるのかを予測することができます。



CSSでセピア色の世界へようこそ!画像や要素をレトロに変身させる魔法の方法

CSSの「Filter Effects」機能の一つである「sepia()」は、画像や要素をモノクロ化し、茶褐色(セピア色)のトーンを適用する関数です。古い写真のようなレトロな雰囲気を演出したい場合などに効果的に使用できます。構文n は、セピア色の強さを表す数値です。0.0の場合は元の画像の色合いが維持され、1.0になると完全にセピア色になります。


【上級者向け】FlexboxレイアウトとJavaScriptで子要素を動的に縮小する方法

flex-shrinkは、以下の状況で機能します。親要素の幅が、flex-basisで設定された子要素の合計幅よりも小さい場合flex-wrapプロパティがno-wrapに設定されている場合これらの条件を満たす場合、flex-shrinkの値に応じて、子要素が縮小されます。


カラーパレット作成ツールも紹介!CSS Miscellaneous color でデザインのインスピレーションを高める

最も簡単な色指定方法は、140種類以上用意されているカラーネームを使用することです。例えば、red、blue、green といった色の名前を指定することで、その色を表示することができます。より正確な色指定には、16進数コードを使用することができます。16進数コードは、#記号 followed by 6桁の数字で構成されます。最初の2桁は赤、次の2桁は緑、最後の2桁は青の強度を表します。例えば、#FF0000 は赤、#0000FF は青、#FFFF00 は黄色を表します。


「利便性」や「アクセシビリティ」

このプロパティの利点:デザインをより個性的に、魅力的にすることができます。ユーザーインターフェースの アクセシビリティ を向上させることができます。特定の入力フィールドを強調することができます。「caret-color」の使い方:例:「caret-color」の注意点:



CSS Miscellaneous: user-selectプロパティの徹底解説

user-select プロパティは、ユーザーがテキストを選択できるかどうかを制御します。これは、ユーザーインターフェースの利便性を向上させたり、重要なコンテンツを保護したりするために使用できます。値auto: ユーザーがテキストを選択できます。これはデフォルト値です。


その他の方法: transition プロパティ、JavaScript、ライブラリ

CSS の @keyframes は、アニメーションの動きを定義するために使用されます。Miscellaneous カテゴリには、その他様々なアニメーション効果を作成するために使用できる便利なルールが含まれています。主なルールsteps(): アニメーションを一定のステップ数で進行させます。


「scroll-margin-bottom」でスクロールバー下部の余白を調整し、読みやすいページを作ろう

**「scroll-margin-bottom」**は、主に以下の目的に使用されます。スクロールバーとコンテンツの間の余白を調整し、読みやすさを向上させるスクロールバーがコンテンツに重なって表示されるのを防ぐスクロールバーのデザインを調整し、サイトの全体的なデザインと調和させる


CSS color-adjust プロパティとその他の方法を組み合わせる

color-adjustプロパティは、以下の4つの値を指定できます。economy:色の数を減らし、ファイルサイズを小さくします。contrast:色のコントラストを調整し、視認性を向上させます。saturation:色の彩度を調整し、鮮やかさを調整します。


【Webデザインの可能性を広げる】"@font-palette-values"でカラーフォントを自由自在に操る

@font-palette-values は、CSSでカラーフォントのパレットを定義するアットルールです。カラーフォントは、文字に色情報を含んだフォント形式であり、より個性的な表現が可能になります。@font-palette-values を使用することで、フォント制作者が定義したデフォルトパレットを変更したり、独自のパレットを作成したりすることができます。