<html>
<head>
  <meta charset="UTF-8"/>
  <title>ParticleJS - マウス追従</title>

  <!-- CreateJSのライブラリー読み込み -->
  <script src="https://code.createjs.com/1.0.0/createjs.min.js"></script>

  <!-- パーティクルシステムのライブラリー読み込み -->
  <script src="../libs/particlejs.min.js"></script>

  <!-- JS -->
  <script>
    var particleSystem = null;
    var stage = null;

    //  ウィンドウのロードが終わり次第、初期化コードを呼び出す。
    window.addEventListener('load', function () {
      // Stageオブジェクトを作成します。表示リストのルートになります。
      stage = new createjs.Stage('myCanvas');

      // パーティクルシステム作成します。
      particleSystem = new particlejs.ParticleSystem();

      // パーティクルシステムの描画コンテナーを表示リストに登録します。
      stage.addChild(particleSystem.container);

      // Particle Develop( http://ics-web.jp/projects/particle-develop/ ) から書きだしたパーティクルの設定を読み込む
      particleSystem.importFromJson(
        // パラメーターJSONのコピー&ペースト ここから--
        {
          'bgColor': '#00000',
          'width': 838,
          'height': 607,
          'emitFrequency': 300,
          'startX': 419,
          'startXVariance': '0',
          'startY': 304,
          'startYVariance': '0',
          'initialDirection': '209.5',
          'initialDirectionVariance': '155',
          'initialSpeed': '2.6',
          'initialSpeedVariance': '3.8',
          'friction': '0.0085',
          'accelerationSpeed': '0.835',
          'accelerationDirection': '233.2',
          'startScale': '1',
          'startScaleVariance': '0.52',
          'finishScale': '0',
          'finishScaleVariance': '0',
          'lifeSpan': '40',
          'lifeSpanVariance': '0',
          'startAlpha': '1',
          'startAlphaVariance': '0',
          'finishAlpha': '1',
          'finishAlphaVariance': '0',
          'shapeIdList': [
            'blur_circle'
          ],
          'startColor': {
            'hue': '17',
            'hueVariance': '32',
            'saturation': '100',
            'saturationVariance': '45',
            'luminance': '56',
            'luminanceVariance': '19'
          },
          'blendMode': true,
          'alphaCurveType': '0'
        }
        // パラメーターJSONのコピー&ペースト ここまで---
      );

      // フレームレートの設定
      createjs.Ticker.framerate = 60;
      // requestAnimationFrameに従った呼び出し
      createjs.Ticker.timingMode = createjs.Ticker.RAF;
      // 定期的に呼ばれる関数を登録
      createjs.Ticker.addEventListener('tick', handleTick);
    });

    function handleTick() {
      //  マウス位置に従って、パーティクル発生位置を変更する
      particleSystem.startX = stage.mouseX;
      particleSystem.startY = stage.mouseY;

      // パーティクルの発生・更新
      particleSystem.update();

      // 描画を更新する
      stage.update();
    }
  </script>

  <!-- CSS -->
  <style>
    canvas {
      background-color: black;
    }

    html, body {
      height: 100%;
    }

    body {
      margin: 0;
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      background: #323232;
      overflow: hidden;
    }
  </style>
</head>
<body>
  <canvas width="960" height="540" id="myCanvas"></canvas>
</body>
</html>