npm 包 hakim-factor 使用教程

阅读时长 8 分钟读完

介绍

hakim-factor 是一款基于 Canvas 的 JavaScript 库,用于创造独特的粒子效果。hakim-factor 还支持 SVG,并且很容易集成到其他项目中,适用于所有前端开发人员。

安装

安装 hakim-factor 可以使用 npm:

你也可以手动下载引用 hakim-factor 的 JavaScript 和 CSS 文件:

使用

基本用法

使用 hakim-factor 创建粒子效果非常简单。首先创建一个 Canvas 元素:

然后在 JavaScript 中创建一个新的实例,并指定用于呈现效果的 Canvas 元素:

最后,使用 factor.recreate() 创建粒子效果:

这里以一个基本的使用代码为例:

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

现在,您就可以在浏览器中查看和交互样例粒子效果了。

配置

hakim-factor 提供了丰富的配置选项,帮助您创建符合您项目要求的各种粒子效果。

可定制的选项

可以调整的选项有:

  • speed:设置动画的运动速度,即速度增量。使用负数或较低值可使效果缓慢,并增加效果的呈现速度。默认值是 1。

  • duration:指定效果的持续时间(以秒为单位)。默认值是 1。

  • color:设置效果的颜色。默认是随机的 RGB 值。

  • count:设置要创建的粒子数。默认值是 50。

  • size:粒子的半径大小(以像素为单位)。默认值是 2。

  • wireframe:设置是否呈现粒子边界,而不是填充粒子。默认值是 false。

  • colorMode:设置颜色的模式:rgb 或 hsl。默认值是 rgb。

  • trail:粒子尾迹的长度(以像素为单位)。默认值是 0。

  • gravity:引入重力到粒子效果。默认值是 0。

  • drift:设置粒子流动的系数。默认值是 0.1。

  • sway:设置粒子摇摆的系数。默认值是 0.1。

  • pointLight:启用粒子光效果,为每个粒子创建一个点光源。默认是 false。

具体的使用方法可以参考以下代码:

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

回调

hakim-factor 还支持回调函数,帮助您的项目控制粒子效果的创建和流程。

以下是可用的回调函数:

  • onCreate():可选,用于配置和创建效果之前的回调。
  • onUpdate():可选,每当效果更新时调用的回调。
  • onComplete():可选,用于完成设置和效果结束时的回调。

可以参考以下代码调用回调函数:

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

示例

这里给出一个基于 hakim-factor 创建的示例应用。它创建了一个漂亮的粒子效果,并支持鼠标交互。

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

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

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

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

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

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

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

这个示例可以通过鼠标的移动和点击来控制粒子效果的行为。在初始状态,每当鼠标移动时,粒子将跟随鼠标移动,但如果鼠标移动而没有按下,则每次更新都会减缓动画运动。如果单击鼠标,粒子效果将更快地响应鼠标,以反应更强的引力。松开鼠标,粒子效果将恢复到原始状态。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055ba381e8991b448d943b

纠错
反馈