
CodePenで公開されている、CSSやJavaScriptで作られたマウスストーカー(カーソルフォロワー)のアイデアを12個セレクトしました。シンプルな円形の追従エレメントから、GSAPを使ったスムーズなイージング、Canvasで描くストレッチ変形、ネオントレイルやスポットライト演出まで、幅広いバリエーションを集めています。各スニペットには実装のポイントも添えているので、どんな仕組みで動いているのか、どこを見ればカスタマイズできるのかが把握しやすくなっています。気になるデザインが見つかったら、実際のサイト制作の参考にしてみてください。
マウスストーカーのアイデア
Smooth Cursor
Canvasを使ったなめらかな追従カーソルのアニメーション
See the Pen Smooth Cursor by FEAR ØF CODE (@fearOfCode) on CodePen.
- Author : FEAR ØF CODE
- Link : CodePen – Demo
💡 実装のポイント
Canvas APIでマウス位置(mouseオブジェクト)とカーソル位置(cursorオブジェクト)を別々に管理し、cursor.x += (mouse.x - cursor.x) * options.easeの線形補間で追従させる構成。GUIからease値(0.05〜1)をリアルタイム調整でき、移動速度に応じてcursor.s(スケール)が縦に潰れるストレッチ変形もctx.scale(1, cursor.s)で実現している。外部ライブラリはlil-guiのみ。
Cursor Follower (Squeeze & Rotate)
速度に応じてスクイーズ&回転する円形カーソルのアニメーション
See the Pen Cursor Follower by gusevdigital (@gusevdigital) on CodePen.
- Author : gusevdigital
- Link : CodePen – Demo
💡 実装のポイント
外部ライブラリ不使用のバニラJS実装。フレームごとにdeltaMouseX/Yで前フレームとの差分を取り、ピタゴラスの定理で速度(mouseVelocity)を算出。それを0〜0.5に変換したscaleValueでスクイーズ量を決め、Math.atan2で進行方向の角度を求めてrotateに適用している。translate→rotate→scaleの順でtransformを結合するのがポイント。速度が20以下のときは角度更新をスキップして微小な揺れを抑えている。
Circle Cursor Js #GSAP
GSAPとlerpを組み合わせた二重円カーソルのアニメーション
See the Pen Circle Cursor Js #GSAP by Alessio Atzeni (@Bluxart) on CodePen.
- Author : Alessio Atzeni
- Link : CodePen – Demo
💡 実装のポイント
中央の小さなドット(.cursor__circle--small)と外側のリング(.cursor__circle--large)を別々の追従速度(lerpの係数0.2と0.1)で動かすことで奥行き感を演出。gsap.ticker.addでアニメーションループを管理し、data-pointer="hover"属性を持つ要素へのマウスエンター時にgsap.toでリングをscale拡大・ドットをscale 0に切り替えるインタラクション設計。Bowserライブラリでタッチデバイスを判別し、モバイルでは自動的に無効化する配慮もある。
Mouse Stalker
GSAPのquickSetterを使った二重カーソルのアニメーション
See the Pen Mouse Stalker by evoworx (@evolab) on CodePen.
- Author : evoworx
- Link : CodePen – Demo
💡 実装のポイント#cursor(黒い小ドット)と#follower(半透明の黄色い大円)の2要素構成で、それぞれにgsap.quickSetterを使ってx/y座標を高速更新している。speed = 0.5(コメントに0.01〜1と記載)をgsap.ticker.deltaRatio()でフレームレート正規化し、pos.x += (mouse.x - pos.x) * dtの計算で遅延追従を実現。.linkクラスへのホバーでis-activeクラスをトグルし、.followerのサイズを40pxから120pxに拡大するインタラクション設計になっている。
Mouse Stalker
jQueryとrequestAnimationFrameで作るホバー連動カーソルのアニメーション
See the Pen Mouse Stalker by masakazuimai (@masakazuimai) on CodePen.
- Author : masakazuimai
- Link : CodePen – Demo
💡 実装のポイント
jQueryとrequestAnimationFrameを組み合わせたシンプルな構成。posX += (mouseX - posX) * 0.2の遅延係数でなめらかな追従を実現し、$cursor.css({ left, top })でDOM位置を更新。.hover-linkホバー時に.hoveringクラスを付与し、width/heightを15px→40pxに、border-colorとbox-shadowを白から#ff6b6bに切り替えるCSSトランジションで演出している。
Animated Cursor with GSAP
Reactとトレイルセグメントで実装したカーソルアニメーション
See the Pen Animated Cursor with GSAP by nragland37 (@nragland37) on CodePen.
- Author : nragland37
- Link : CodePen – Demo
💡 実装のポイント
Reactコンポーネントとして実装され、trailLength定数(デフォルト10)本の.trail-segmentをuseRefの配列で管理している。各セグメントをインデックスに応じたdelayでGSAPアニメーションさせることでトレイル効果を生成。マウスダウン時にはcursorRefのwidthを50pxに拡大し--green色のborder+boxShadowを付与。移動が500ms停止するとisMovingがfalseになりトレイルのopacityをフェードアウトする設計になっている。
Spotlight Cursor Effect GSAP
clip-pathとCSS変数でカーソルに追従するスポットライト演出
See the Pen Spotlight Cursor Effect GSAP by Joseph Barrios (@Joseph-Barrios) on CodePen.
- Author : Joseph Barrios
- Link : CodePen – Demo
💡 実装のポイントmousemoveイベントでマウス座標を--x/--yのCSS変数としてdocument.documentElementに設定し、.overlayのclip-path: circle(20vmin at calc(var(--x, 50%) * 1%) calc(var(--y, 50%) * 1%))でスポットライト円を追従させる仕組み。ボタンクリックで.is-openクラスをトグルし、clip-path: circle(200%)+cubic-bezier(1,-0.01,.01,.99)のカスタムイージングでオーバーレイを全画面に展開する演出になっている。
Custom Cursor (Neon Trail)
マウス移動に連動して生成されるネオン発光トレイルのアニメーション
See the Pen Custom Cursor by Md Mamun Ar Rashid (@arnilrashid) on CodePen.
- Author : Md Mamun Ar Rashid
- Link : CodePen – Demo
💡 実装のポイントmousemoveごとにdocument.createElement('div')で.cursor要素を動的生成し、配列trailに積み上げていく仕組み。trailLength = 20を超えた古い要素はtrail.shift()で除去。CSSの@keyframes fadeOut(opacityを0に・scaleを2に)をそのまま使い、animationendイベントで要素をDOMから削除するシンプルな設計。ネオン色の変更は.cursorのbackground-colorとbox-shadowの#ff007fを差し替えるだけでOK。
Mouse Stalker
jQueryでシンプルに実装する十字線&ホバー演出のストーカー
See the Pen Mouse Stalker by Oh Morita (@moritao) on CodePen.
- Author : Oh Morita
- Link : CodePen – Demo
💡 実装のポイント
JSでdiv#stalkerを動的生成し、mousemoveでleft/topをリアルタイム更新するjQuery実装。#stalkerのスタイルはCSSのlinear-gradient二重がけ(横5px・縦5px)で十字線を描いており、transform: translate(-50%, -50%)で中心合わせ。リンクホバー時に.activeクラスを付与するとbackground-sizeが拡大しopacity: 0+filter: blur(1em)でフワッと消える演出になっている。
Particle-Based Circle Animation Following Cursor
GSAPのstaggerで作るパーティクル円形カーソルのアニメーション
See the Pen Particle-Based Circle Animation Following Cursor by Bhuneshwar (@Bhanuweb) on CodePen.
- Author : Bhuneshwar
- Link : CodePen – Demo
💡 実装のポイント
JSで36個の.box(span要素)を生成し、それぞれにhue-rotate(${i * 10}deg)フィルターを適用することで虹色グラデーションを作り出している。CSSのtransform-origin: center 50pxで各ピースを円の外周に沿わせ、gsap.to(".box", { rotate: (index) => index * 10, stagger: 0.05 })のstagger設定でパーティクルが順番にカーソル位置まで追従する動きを実現している。
Zippity Zappity (SVG)
RxJS+TypeScript+GSAP(TweenMax)で描くSVGフォロワーのアニメーション
See the Pen Zippity Zappity (SVG) by Steve Gardner (@ste-vg) on CodePen.
- Author : Steve Gardner
- Link : CodePen – Demo
💡 実装のポイント
TypeScriptで記述された本格的なクラス構成(App・Follower・Input)で、RxJSのObservableでマウス・タッチイベントを統合している。FollowerクラスがSVG<path>にポイント配列を書き込み続け、removeDelay = 400ms経過した末尾ポイントをpopすることでテールが自然消滅する。ランダムにmakeCircle/makeSquare/makeTriangleを呼び出してSVG要素を生成し、TweenMax.fromToでscale 0まで弾き飛ばす演出も含まれる。
Custom Cursor Effect
インタラクティブなカスタムカーソルエフェクトのアニメーション
See the Pen Custom Cursor Effect by devales (@devales) on CodePen.
- Author : devales
- Link : CodePen – Demo
💡 実装のポイント
⚠️ このPenはフェッチ時にbot保護が作動したため、ソースコードの詳細確認ができていません。CodePenのページでソースを直接ご確認ください。
マウスストーカーとは?
マウスストーカー(Mouse Stalker)とは、ウェブページ上でマウスカーソルの動きを追従するカスタムUI要素のことです。英語では「Cursor Follower」「Mouse Follower」とも呼ばれ、標準のブラウザカーソルを非表示にし(cursor: none)、代わりにHTMLやCanvasで描いた独自の要素をアニメーションさせるのが基本的な仕組みです。
単純な追従だけでなく、ホバー時に形状やサイズを変えたり、スクイーズ(つぶれ)変形や発光エフェクトを加えたりと、表現のバリエーションは多岐にわたります。ポートフォリオサイトやブランドサイトなど、没入感とインタラクティブ性を重視するウェブデザインで広く採用されています。
CodePenとは?
CodePenは、HTML、CSS、JavaScriptを使ってウェブページのプロトタイプや実装を行うことができるオンラインの開発環境です。
CodePenでは、ウェブ開発者やデザイナーが、ブラウザ上でコードを書きながら、すばやく試行錯誤することができます。ユーザーは自分のプロジェクトを公開し、他のユーザーによるフィードバックを受けたり、共有することもできます。
CodePenには、エディター機能が搭載されており、HTML、CSS、JavaScriptのコードを入力することができます。また、ユーザーが公開したプロジェクトは、フロントエンドの技術を利用して動的な表現やアニメーションを作ることができます。
よくある質問
-
マウスストーカーはスマートフォンでも動作しますか?
タッチデバイスにはマウスカーソル自体が存在しないため、基本的には動作しません。記事内のいくつかのPen(Circle Cursor Js #GSAPなど)はBowserライブラリでデバイスを判別し、タッチ端末では自動的にカーソルエフェクトを無効化する実装になっています。実務では同様の判定処理を追加することを推奨します。
-
マウスストーカーを実装するとデフォルトのカーソルは消えますか?
ほとんどの実装では
body { cursor: none; }を指定してブラウザ標準のカーソルを非表示にしています。リンクや入力要素でもポインターが表示されないよう、a, button { cursor: none; }なども合わせて指定するのが一般的です。 -
GSAPなしでも実装できますか?
はい、可能です。記事内の「Cursor Follower (Squeeze & Rotate)」はバニラJSのみで実装されています。
requestAnimationFrameと線形補間(pos += (target - pos) * factor)の組み合わせで、GSAPと同等のスムーズな追従を実現できます。シンプルな追従であればライブラリ不要で十分対応できます。 -
アクセシビリティ上の注意点はありますか?
カーソルエフェクトは視覚的な演出であり、
pointer-events: noneを指定してクリック操作に影響が出ないようにするのが基本です。また、前庭感覚障害を持つユーザー向けに、OSの「視差効果を減らす」設定を尊重するよう@media (prefers-reduced-motion: reduce)でエフェクトを無効化する対応も検討してください。

