Canvas粒子背景效果

Canvas是HTML5中的一个重要标签,它允许我们在页面上绘制2D或者3D图形。其中2D图形最为常见,我们可以利用Canvas来创造各种有趣的特效和动画,其中之一就是粒子背景效果。

实现原理

我们可以通过Canvas API中的createRadialGradient()fillRect()方法来实现粒子背景效果。具体实现方式如下:

  1. 创建Canvas元素
------- ------------------------------
  1. 获取Canvas上下文
----- ------ - -------------------------------------------
----- --- - ------------------------
  1. 设置Canvas大小
------------ - ------------------
------------- - -------------------
  1. 定义粒子对象
----- -------- -
  -------------- -- ------- -
    ------ - --
    ------ - --
    ----------- - -------
    ---------- - ---------- ---- ---- -------------------
    ----------- - ------------- - - - --
    ----------- - ------------- - - - --
  -
  ------ -
    ----------------
    --------------- ------- ------------ -- ------- - ---
    ------------- - -----------
    -----------
  -
-
  1. 绘制粒子
----- ------------- - ---
-------- ------ -
  --- ---- - - -- - - ---- ---- -
    ----- ------ - ------------- - - - --
    ----- - - ------------- - ------------- - ------ - -- - -------
    ----- - - ------------- - -------------- - ------ - -- - -------
    ---------------------- ----------- -- ---------
  -
-

-------- --------- -
  -------------------------------
  ------------- - -------- -- -- -------
  --------------- -- ------------- ---------------
  --- ---- - - -- - - --------------------- ---- -
    ------------------ -- ------------------------
    ------------------ -- ------------------------

    -- -
      ------------------ - - --
      ------------------ - ------------ --
      ------------------ - - --
      ------------------ - -------------
    - -
      ----------------------- ---
      ----
    - ---- -
      ------------------------
    -
  -
-

示例代码

--------- -----
----- ----------
  ------
    ----- --------------- --
    ----- --------------- ---------------------------- ------------------ --
    ---------------------------
    -------
      ---- -
        ------- --
        -------- --
        --------- -------
      -
      ---------------- -
        --------- ---------
        ---- --
        ----- --
      -
    --------
  -------
  ------
    ------- ------------------------------
    --------
      ----- ------ - -------------------------------------------
      ----- --- - ------------------------

      ------------ - ------------------
      ------------- - -------------------

      ----- -------- -
        -------------- -- ------- -
          ------ - --
          ------ - --
          ----------- - -------
          ---------- - ---------- ---- ---- -------------------
          ----------- - ------------- - - - --
          ----------- - ------------- - - - --
        -
        ------ -
          ----------------
          --------------- ------- ------------ -- ------- - ---
          ------------- - -----------
          -----------
        -
      -

      ----- ------------- - ---
      -------- ------ -
        --- ---- - - -- - - ---- ---- -
          ----- ------ - ------------- - - - --
          ----- - - ------------- - ------------- - ------ - -- - -------
          -----

- ---------------------------------------------------------- --------
-------------------------------------------------------------------------------------