本文へスキップ

マウス追従パララックス

マウス位置に応じて背景・中景・前景の3層が異なる量で動き、自然な奥行きが生まれる。

プレビュー

ホバー

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

仕様書

向く場面
  • ヒーローの背景に奥行きを与える
  • ブランド・ゲーム系LPの第一印象
  • マウスに反応する余白のある画面
避ける場面
  • 本文の背景(文字の下で動くと読みにくい)
  • 乗り物酔い・前庭障害に配慮が要る画面
  • reduce 設定で追従を止められない組み込み
構成要素
  • 背景層(星)
  • 中景層(雲)
  • 前景層(惑星)
  • 操作ヒント
持っている状態
  • 通常
キーボード

マウス・タッチ専用(マウスはホバー追従・タッチはドラッグ)。装飾なので代替操作は不要。伝える情報は層の外のテキストで持つ

支援技術

純粋な装飾で情報を持たない。3層は aria-hidden で、見出しなどのテキストは層の外に置く。reduce 設定では追従を止めて静止した1枚絵にする

動き

ポインタ位置へ 100ms linear で追従・奥行きごとに移動量 18/40/70px。離れると原点へ戻る。reduce では動かない

デザインの要点

  • 移動量は奥から 18/40/70px と奥行きに比例させる。等間隔だと層が同じ板に見えて奥行きが出ない
  • 層は inset: -48px で枠より大きく敷く。最大移動量ぶんの余白が無いと端に背景色が覗く
  • 追従は 100ms linear の短い transition で角を取る。長くすると遅れてついてくる酔いやすい動きになる
  • タッチ端末では一度消したヒントを戻さない。指を離すたびに点滅すると案内ではなく煩わしさになる

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

<div class="mp-stage">
  <!-- 背景レイヤ(ゆっくり動く)。3層とも装飾なので aria-hidden -->
  <div class="mp-layer mp-bg" aria-hidden="true">
    <div class="mp-star mp-s1"></div>
    <div class="mp-star mp-s2"></div>
    <div class="mp-star mp-s3"></div>
    <div class="mp-star mp-s4"></div>
    <div class="mp-star mp-s5"></div>
    <div class="mp-star mp-s6"></div>
  </div>
  <!-- 中景レイヤ -->
  <div class="mp-layer mp-mid" aria-hidden="true">
    <div class="mp-cloud mp-c1"></div>
    <div class="mp-cloud mp-c2"></div>
  </div>
  <!-- 前景レイヤ(速く動く) -->
  <div class="mp-layer mp-fg" aria-hidden="true">
    <div class="mp-planet"></div>
  </div>
  <p class="mp-hint">マウスを動かして</p>
</div>

タグ

同じカテゴリ「演出・リッチ」のほかのパーツ

関連パーツ