第9回: 高度なアニメーションと演出

この回の目標

  • CSSアニメーションの基本を使える
  • フェード・スライドなど自然な演出を入れられる
  • 見た目のクオリティを一段上げられる

① なぜアニメーションを入れるのか

  • 目線誘導
  • 強調
  • 離脱防止

アニメーションは装飾ではなく「役割」。

② CSSアニメーションの基礎

transition


.button {
  transition: 0.3s;
}

hover演出


.button:hover {
  transform: translateY(-5px);
  opacity: 0.8;
}

transform と opacity は軽くておすすめ。

③ よく使う演出パターン

ボタンhover


.button:hover {
  transform: scale(1.05);
}

カードhover


.card:hover {
  box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

フェードイン(簡易版)


.fade {
  opacity: 0;
  transform: translateY(20px);
  transition: 0.6s;
}

.fade.show {
  opacity: 1;
  transform: translateY(0);
}

④ スクロール連動アニメーション

クラス付与型で実装するのが基本。


const fades = document.querySelectorAll(".fade");

window.addEventListener("scroll", function() {
  fades.forEach(function(fade) {
    const position = fade.getBoundingClientRect().top;
    const windowHeight = window.innerHeight;

    if (position < windowHeight - 100) {
      fade.classList.add("show");
    }
  });
});

すべて自作する必要はない。 ライブラリ使用もOK。

⑤ やってはいけない演出

  • 動きすぎる
  • 文字が読めない
  • 処理が重い

目的を忘れた演出は逆効果。

⑥ LPにどう組み込むか

  • ファーストビューのCTA
  • 重要ボタン
  • セクション切り替え

全部に入れない。 必要な場所だけ。

⑦ ミニ課題

  • ボタンにhover演出を追加
  • フェードインを1箇所入れる

「派手」ではなく「意味のある動き」を意識。

この回のまとめ

  • アニメーションは役割を持たせる
  • transformとopacityが基本
  • スクロール連動はクラス付与型
  • やりすぎない