本文へスキップ

カスタムカーソル追従

小さなドットがカーソルに張り付き、リングが少し遅れて追いかける。ボタンに乗ると大きく開く、定番のサイト演出。

プレビュー

ホバー

操作カーソルを乗せると動きます(スマホはタップ)。

仕様書

向く場面
  • ブランドサイト・ポートフォリオの演出
  • ホバー対象で反応を大きく見せたい
  • ダーク背景の没入感
避ける場面
  • 業務画面(カーソル位置の把握を邪魔する)
  • cursor:none で標準カーソルを消しつつ追従が遅い
  • フォーム入力が多い画面
構成要素
  • ステージ
  • ドット
  • リング
  • ホバー対象
持っている状態
  • 通常
  • ホバー
キーボード

Tab でボタンへ・Enter/Space で実行(button 標準)。カーソル演出はポインタ専用

支援技術

cursor:none で標準カーソルを消すため、リングが常に追従して位置を示す。ボタンに focus-visible の輪郭。reduced-motion では遅延を無くしドットと同じ位置に即時追従

動き

ドットは即時、リングは毎フレーム 0.18 の補間で遅れて追従。ボタン上でリング 34→64px 0.2s ease。reduced-motion では遅延・拡大の transition 無し

デザインの要点

  • ドットは pointermove で即時、リングは rAF で毎フレーム 0.18 ずつ近づける。2 つの速度差が「追いかける」表情を作る
  • cursor:none で標準カーソルを消す以上、ドットは 1 フレームも遅らせない。遅れると「どこを指しているか」が分からなくなる
  • ボタン上ではリングを 64px に開く。ホバー対象が分かる合図を、消した標準カーソルの代わりに用意する
  • ドット・リングは pointer-events:none にする。無いとカーソルの真下に常に自分がいて、ボタンが押せない
実装メモ

プレビューは枠内だけにカーソルを置き換えています。実ページ全体で使うときは .cc-stage を body などに広げ、位置計算を clientX/clientY(ページ基準)にしてください。タッチ端末ではドラッグで追従します。

コード(コピーして使えます)

<div class="cc-stage">
  <p class="cc-hint">この枠内でマウスを動かして</p>
  <button class="cc-btn" data-cc>ホバー</button>
  <span class="cc-dot"></span>
  <span class="cc-ring"></span>
</div>

タグ

同じカテゴリ「ホバーエフェクト」のほかのパーツ

関連パーツ