CSS Translateによるスライドインアニメーション

translateXまたはtranslateYとCSSトランジションやキーフレームを使ったスライドイン登場アニメーション。一般的なUIモーションパターン。

Animation Combos

詳細な説明

Translateによるスライドイン

translateを使って要素を表示させるスライドインは、最も基本的なアニメーションパターンの一つです。レイアウト再計算を発生させずにスムーズな登場エフェクトを作成します。

トランジションアプローチ

.slide-element {
  transform: translateX(-100%);
  opacity: 0;
  transition: transform 0.4s ease-out, opacity 0.4s ease-out;
}

.slide-element.visible {
  transform: translateX(0);
  opacity: 1;
}

キーフレームアプローチ

@keyframes slideInLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.slide-element {
  animation: slideInLeft 0.4s ease-out forwards;
}

スライド方向

方向 開始時のTransform
左から translateX(-100%)
右から translateX(100%)
上から translateY(-100%)
下から translateY(100%)

Scaleとの組み合わせ

一般的な拡張として、登場時に控えめなスケールを追加します:

@keyframes slideInScale {
  from {
    transform: translateX(-50px) scaleX(0.95) scaleY(0.95);
    opacity: 0;
  }
  to {
    transform: translateX(0) scaleX(1) scaleY(1);
    opacity: 1;
  }
}

パーセンテージ vs ピクセル

  • パーセンテージtranslateX(-100%)):要素自身の幅分だけ移動。完全に画面外にスライドさせるのに最適
  • ピクセルtranslateX(-50px)):固定距離。要素サイズに依存しない控えめなシフトに適している

ユースケース

モバイルメニュードロワー、通知トースト、モーダルの登場、スクロールトリガーのコンテンツ表示、段階的なリストアイテムアニメーションに使用されます。GPUアクセラレーションのため、left/rightのアニメーションよりtranslateベースのアプローチが推奨されます。

試してみる — CSS Transform Playground

フルツールを開く