CSSのtransform transitionを使ったホバー時のスライドアップ効果

CSS transitionとtransform: translateYを使用してホバー時のスライドアップアニメーションを作成。GPUアクセラレーションされた軽量なホバーエフェクト。

Basic Transitions

詳細な説明

transformトランジションによるスライドアップ

スライドアップ効果は、ユーザーがホバーした時に要素を垂直方向に移動させます。topmargin-topの代わりにtransform: translateY()を使用することで、アニメーションがGPUアクセラレーションされ、レイアウトの再計算がトリガーされません。

CSSコード

.card {
  transform: translateY(0);
  transition: transform 0.4s ease-out;
}

.card:hover {
  transform: translateY(-8px);
}

なぜpositionではなくtransformを使うのか?

topmarginpaddingをアニメーションすると、ブラウザは毎フレーム周囲の要素のレイアウトを再計算する必要があります。これにより「レイアウトスラッシング」とカクつきのあるアニメーションが発生します。transformはコンポジットレイヤーで動作するため、GPUがレイアウトに影響を与えずに移動を処理します。

タイミング関数: ease-out

ease-outカーブは速く始まり、終わりに向かって減速します。これは自然な減速を模倣し — 物体が上にスライドして穏やかに停止するように — linearよりも自然に感じられます。

他のプロパティとの組み合わせ

一般的なパターンでは、スライドアップとシャドウの増加を組み合わせます:

.card {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: transform 0.4s ease-out, box-shadow 0.4s ease-out;
}

.card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

これにより、カードがページから浮き上がるような錯覚が生まれます。

ユースケース

スライドアップのホバーエフェクトは、カードグリッド、商品リスト、ブログ記事プレビュー、ポートフォリオアイテムで一般的に使用され、要素がインタラクティブであることをユーザーに視覚的にフィードバックします。

試してみる — CSS Transition Generator

フルツールを開く