本文へスキップ

パーティクル演出

Canvas 2D で粒子が漂い、近い粒子同士を線でつなぐネットワーク表現。マウス・タッチに反応して粒子が引き寄せられ、線が伸びる。

ENGLISH

Particle Network

  • JS
  • Canvas
約238行動きと演出 / 没入・リッチ演出 の一覧 →

プレビュー

ホバー

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

仕様書

向く場面
  • テック・データ系サービスのヒーロー背景
  • つながり・ネットワークを示す演出面
  • ポインタに反応する暗色の背景
避ける場面
  • 本文の背景(線が文字に重なる)
  • 明るい配色のサイト
  • 多数の画面で同時に描画する
構成要素
  • 暗い面(canvas)
  • 粒子
  • 接続線
  • ポインタの点
持っている状態
  • 通常
キーボード

マウス・タッチ専用(ポインタへ粒子が集まる)。装飾で代替操作は不要

支援技術

canvas は aria-hidden の装飾。reduce 設定では1枚描いて rAF を止め、ポインタが動いたときだけ描き直す。visibilitychange で停止

動き

55粒子が 0.2〜0.5px/frame で漂い 80px 以内を線で結ぶ。ポインタ 90px 内へ引力。寿命 240〜600frame でフェードし端から再生成

デザインの要点

  • 線の濃さは距離(80px)と両端の粒子の alpha の積。寿命で消える粒子の線が先に残ると糸だけが浮く
  • 粒子は寿命 240〜600 frame で端から作り直す。引力だけだと全部がポインタに集まって止まる
  • ポインタが無い間は仮想カーソルを楕円軌道で回す。静止した網は「反応しないもの」に見える
  • 粒子数 55 は O(n²) の線判定が 1,485 組で収まる数。増やすなら空間分割が要る

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

<div class="pn-wrap">
  <canvas class="pn-canvas" aria-hidden="true"></canvas>
</div>

タグ

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

関連パーツ