Particles.js:简介

许多微小的粒子在周围移动或相互影响或与您互动,对它们有一定的吸引力。 如果您处在需要处理大量粒子的情况下,Particles.js将为您提供良好的服务。 从名称可以明显看出,它是一个JavaScript库,可以帮助您创建粒子系统。 此外,它重量轻,易于使用,并提供了很多控制权。

在本教程中,我将介绍该库的所有功能并帮助您入门。 本教程是本系列的第一部分,将仅介绍基础知识。

安装及使用

首先,您需要托管库。 您可以将其上传到自己的服务器上,也可以像我一样使用jsdeliver CDN。

<script src="//cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>

您还需要创建一个DOM元素,Particles.js将在其中创建粒子。 为其提供一些易于识别的id ,以供以后参考。

<div id="particles-js"></div>

现在,要创建具有默认设置的基本粒子系统,您只需要一行JavaScript即可初始化库。

particlesJS();

默认情况下,粒子为白色。 它们还与细白线互连。 因此,如果您现在没有看到任何内容,只需将背景更改为其他内容即可。 这是样式CSS div CSS:

#particles-js {
  background: cornflowerblue;
}

尝试点击下面演示中的某个地方。 每次单击后,Particles.js将再生成四个新的粒子。

设置自定义选项

即使只花了四行代码即可创建上一个演示,但最终结果可能并非您想要的。 在我看来,这些颗粒的尺寸似乎更大一些,并且紧密堆积。 也许您希望粒子的形状不同或具有随机大小。 Particles.js允许您在JSON中设置所有这些以及更多属性,您可以在初始化期间引用这些属性。 调用该函数的常规语法如下:

particlesJS(dom-id, path-json, callback (optional));

在这里, dom-id是您希望粒子出现的元素的id。 path-json是具有所有配置选项的JSON文件的路径,而callback是可选的回调函数。 您可以将JSON代码直接放在第二个参数中,而不是路径。

让我们尝试使用这个很棒的库来创建降雪。 首先,我们的函数将如下所示:

particlesJS("snowfall", 'assets/snowflakes.json');

我已经删除了回调函数,并将DOM Id更改为更特定的名称。 雪花大多为球形。 它们将下降并且尺寸不均匀。 另外,与我们的第一个演示不同,它们不会通过线连接。

移动粒子

首先,我们的snowflakes.json文件将具有以下代码:

{
  "particles": {
  
  },
  "interactivity": {
    
  }
}

我们与形状,大小和运动等物理属性相关的所有配置选项都将放在particles内部。 所有决定交互行为的配置选项都将进入interactivity

我将粒子数设置为100。这通常取决于可用空间。 如前所述,我还将形状设置为圆形。 此时,您的文件应如下所示:

{
  "particles": {
    "number": {
      "value": 100
    },
    "shape": {
      "type": "circle"
    }
  },
  "interactivity": {
    
  }
}

我使用的值为10设置雪花的大小。 由于雪花的大小各不相同,因此我将random设置为true 。 这样,雪花的大小可以在零到我们指定的最大限制之间。 要禁用或删除将这些粒子链接在一起的所有行,可以将line_linked enable设置为false

要四处移动粒子,必须将enable属性设置为true 。 如果没有其他设置,粒子将像在太空中一样随意移动。 您可以使用"bottom"类的字符串值设置这些粒子的方向。 即使粒子的总体运动是向下的,它们仍然需要随机移动一点才能看起来自然。 可以通过straight设置为false来实现。 此时, snowflakes.json将具有以下代码:

{
  "particles": {
    "number": {
      "value": 100
    },
    "shape": {
      "type": "circle"
    },
    "size": {
      "value": 10,
      "random": true
    },
    "line_linked": {
      "enable": false
    },
    "move": {
      "enable": true,
      "speed": 2,
      "direction": "bottom",
      "straight": false
    }
  },
  "interactivity": {
    
  }
}

使用上面的JSON代码,您将获得以下结果:

改变互动行为

如果将鼠标悬停在上面的演示上,您会注意到这些行仍然存在,但仅在悬停期间临时显示。 要完全删除它们,可以将onhover事件的enable属性设置为false 。 尝试在上面的演示中单击,您会发现每次单击都会生成四个粒子。 这是默认行为。 您还可以使用push下的particles_nb属性来更改粒子数。 在这种情况下,我将此数字设置为12。

您还可以使用detect_on选项确定是检测窗口还是画布上的事件。

这是JSON文件的完整代码:

{
  "particles": {
    "number": {
      "value": 100
    },
    "shape": {
      "type": "circle"
    },
    "size": {
      "value": 10,
      "random": true
    },
    "line_linked": {
      "enable": false
    },
    "move": {
      "enable": true,
      "speed": 2,
      "direction": "bottom",
      "straight": false
    }
  },
  "interactivity": {
    "detect_on": "canvas",
    "events": {
      "onhover": {
        "enable": false
      }
    },
    "modes": {
      "push": {
        "particles_nb": 12
      }
    }
  }
}

如您所见,我不必专门启用onclick事件。 默认情况下启用。 同样,我可以删除其他选项,例如在interactivity下使用"detect_on": "canvas"和在move下使用"straight": false 。 我将它们保留下来,以使入门者不会对粒子为何不沿直线移动等问题感到困惑。

您可以尝试不同的值来修改此CodePen演示中的雪花。

最后的想法

使用Particles.js入门很容易。 如果您以前从未使用过粒子系统,那么该库将立即帮助您入门。 本教程只是对该库的基本介绍。 在本系列的下两个教程中,我将更详细地介绍该库的所有方面。

如果您对本教程有任何疑问,请在评论中让我知道。

翻译自: https://code.tutsplus.com/tutorials/particles-js-introduction--cms-26285

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
particles.js是一个用于创建粒子效果的JavaScript库。它可以在网页上生成各种动态的、漂亮的粒子效果,如星星、雪花、烟花等。你可以通过以下步骤来使用particles.js: 1. 下载particles.js库:你可以在Github上找到particles.js的源代码并下载,链接为:[https://github.com/VincentGarreau/particles.js](https://github.com/VincentGarreau/particles.js)。 2. 引入particles.js并使用:将下载的particles.js文件引入到你的HTML文件中,并在需要使用粒子效果的元素上添加一个canvas标签。然后,你可以通过配置数据来自定义粒子效果的外观和行为。 3. 配置数据说明:你可以通过配置数据来调整粒子效果的各种属性,如粒子的数量、大小、颜色、速度、形状等。具体的配置参数可以参考particles.js的文档。 以下是一个简单的例子,演示了如何使用particles.js创建一个星空效果: ```html <!DOCTYPE html> <html> <head> <title>Particles.js Demo</title> <style> #particles-js { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: -1; } </style> </head> <body> <div id="particles-js"></div> <script src="particles.js"></script> <script> particlesJS('particles-js', { particles: { number: { value: 100, density: { enable: true, value_area: 800 } }, color: { value: '#ffffff' }, shape: { type: 'star', stroke: { width: 0, color: '#000000' }, polygon: { nb_sides: 5 } }, size: { value: 3, random: true, anim: { enable: false, speed: 40, size_min: 0.1, sync: false } }, move: { enable: true, speed: 2, direction: 'none', random: false, straight: false, out_mode: 'out', bounce: false, attract: { enable: false, rotateX: 600, rotateY: 1200 } } }, interactivity: { detect_on: 'canvas', events: { onhover: { enable: true, mode: 'grab' }, onclick: { enable: true, mode: 'push' }, resize: true }, modes: { grab: { distance: 200, line_linked: { opacity: 1 } }, push: { particles_nb: 4 } } }, retina_detect: true }); </script> </body> </html> ``` 这个例子创建了一个具有100个星星粒子的星空效果,当鼠标悬停在粒子上时,会有吸引效果,点击粒子时会有推动效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值