3D チルトカード

インタラクション Medium #js #tilt #3d

3D チルトカードは、マウスの位置に合わせてカードが立体的に傾く、インタラクティブな演出です。この実装は CSS と JavaScript の組み合わせ。親要素に perspective:800px を与えて奥行きの基準を作り、 mousemove イベントでカーソルがカード内のどこにあるかを割合で求めます。

▶ プレビュー

解説

3D チルトカードは、マウスの位置に合わせてカードが立体的に傾く、インタラクティブな演出です。この実装は CSS と JavaScript の組み合わせ。親要素に perspective:800px を与えて奥行きの基準を作り、mousemove イベントでカーソルがカード内のどこにあるかを割合で求めます。その値を rotateXrotateY に渡し、傾きをリアルタイムに反映。マウスが離れると mouseleave で回転をゼロに戻し、水平に復帰します。transition:transform .1s でわずかに遅らせ、動きをなめらかにしています。

向いている場面

  • 注目させたい商品カードやヒーロー要素
  • ポートフォリオの作品サムネイル
  • 遊び心を出したいランディングページ

傾きの強さは JavaScript の 18 という倍率で、奥行き感は perspective の値で調整します。マウス前提の演出のためタッチ端末では傾きませんが、なくても見た目は崩れません。多くのカードに一斉に効かせると重くなることがあるので、対象は絞るのがおすすめです。動きを抑えたい利用者には prefers-reduced-motion で無効化すると配慮になります。

使用例・適したシーン

  • ナビゲーションのインタラクティブ装飾
  • ギャラリーのホバーリビール
  • サービスカードの強調

よくある質問

傾く角度を変えられますか
はい。JavaScriptの x*18 と -y*18 の18という倍率を変えるだけです。大きくすると大胆に、小さくすると控えめに傾きます。
スマホでも傾きますか
この実装はマウスの動きに反応するため、タッチ端末では傾きません。ただし傾かなくてもカード自体は普通に表示されるので、見た目が壊れることはありません。
追加日:2026-05-16
← すべてのスニペットへ戻る