サイトトップ

Director Flash 書籍 業務内容 プロフィール

HTML5テクニカルノート

Webページの背景に粒子のアニメーションを加える ー Particleground

ID: FN1509002 Technique: HTML5 and JavaScript Library: jQuery 1.11.3

jQueryのプラグインParticlegroundを使うと、Webページの背景に粒子のアニメーションが加えられます(サンプル001)。マウスポインタの位置に応じた視差効果(パララックス)も備わっています。このプラグインの使い方をかいつまんでご紹介しましょう。

サンプル001■jQuery + Particleground: Background particle


01 プラグインParticlegroundのダウンロードと設定

Particlegroundのページの[DOWNLOAD]ボタンでプラグインのZIPファイルがダウンロードできます(図001)。また、ページ右上にはGitHubへのリンクがありますので、そちらで確かめてダウンロードしても結構です。

図001■Particlegroundのページ
図001

ParticlegroundをjQueryのプラグインとして使いますので、script要素でjQueryとともに読み込みます(以下の例はParticlegroundがlibフォルダに納められている場合です)。なお、jQueryなしに単独で使うこともできます(「README.md」参照)。

<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="lib/jquery.particleground.min.js"></script>

02 Particlegroundを使ってみる

とりあえず、Particlegroundを使ってみましょう。body要素にParticlegroundを用いるdivなどの要素を加え、idまたはクラスを定めます。

<div id="particles">
  <div>
    <!-- 中略 -->
  </div>
</div>

style要素には、Particlegroundの領域(widthとheight)を与えておきます。

#particles {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

あとは、JavaScriptコードでParticlegroundを定める要素のセレクタに対して、particleground()メソッドを呼び出すだけです(コード001)。デフォルトの設定(粒子と線の色は#666666)で、背景に粒子のアニメーションが表れます(図002)。

コード001■Particlegroundを定める要素のセレクタにparticleground()メソッドを呼び出す
  1. $(function($) {
  2.   $("#particles").particleground();
  3. });

図002■デフォルトのパーティクルアニメーション
図002


03 パーティクルの設定を変える

particleground()メソッドに設定のオプションが定められたObjectインスタンスを渡せば、パーティクルの設定が変えられます。たとえば、粒子と線の色はそれぞれdotColorlineColor、粒子の大きさはparticleRadiusで与えます(後掲表001)。Objectインスタンスに、これらのオプションをプロパティとして値を定め、particleground()メソッドの引数に渡せばよいでしょう。つぎのコード002は、粒子と線の色を"turquoise"とし、粒子の直径を10ピクセルにしています(前掲サンプル001参照)。

コード002■ドラッグした軌跡にキャッシュで線を描く
  1. $(function($) {
  2.   var settings = {
        dotColor: "turquoise",
        lineColor: "turquoise",
        particleRadius: 10
      };
  3.   $("#particles").particleground(settings);
  4. });

Particlegroundを設定するオプションは、つぎの表001のとおりです。すべてにデフォルト値が与えられていますので、変えたいオプションのみを定めれば足ります。

表001■Particlegroundを設定するオプション
オプション 説明 デフォルト値
minSpeedX
minSpeedY
水平・垂直方向に移動する最小の大きさ。 0.1
maxSpeedX
maxSpeedY
水平・垂直方向に移動する最大の大きさ。 0.7
directionX 水平に移動する方向。"center"、"left"、"right"のひとつを定める。"center"はCanvasの端で方向を反転する。 "center"
directionY 垂直に移動する方向。"center"、"up"、"bottom"のひとつを定める。"center"はCanvasの端で方向を反転する。 "center"
density 粒子の密度を定める。ひとつの粒子をつくる領域のピクセル数。 10000
dotColor 粒子の色。 "#666666"
lineColor 線の色。 "#666666"
particleRadius 粒子の直径。 7
lineWidth 線の幅。 1
curvedLines 粒子を曲線で結ぶかどうか。trueは曲線、falseだと直線で結ばれる。 false
proximity 粒子同士がどれくらい近いと線で結ぶか決めるピクセル数。 100
parallax マウスポインタの位置に応じた視差効果(パララックス)を与えるかどうか。falseだと効果が加わらない。 true
parallaxMultiplier 視差効果の強さ。数字が小さいほど効果は高まる。 5
onInit Particlegroundの初期化が済んだとき呼び出すコールバック関数。 function() {}
onDestroy destroy()メソッドが呼び出されたときに実行するコールバック関数。 function() {}

さらにもうひとつ、Grant Skinner氏の作例にならって、鉛筆の線の色をドラッグし始めるたびに切り替えました(getNextColor())。HSLカラーの文字列から色相(hue)の数値を取り出して一定値(85)を加え、改めてHSLの文字列にしています(第35〜36行目)。


04 参考情報



作成者: 野中文雄
作成日: 2015年9月29日


Copyright © 2001-2015 Fumio Nonaka.  All rights reserved.