如何使用tsParticles创建背景效果
介绍
Particles.js 是一个允许您创建粒子效果的库。 这些是绘制在画布上的形状和对象,具有观察某些物理行为和交互性的能力。 这对于在不需要插图或摄影的情况下创建引人注目的背景很有用。
注意: 原始 repo 的开发似乎已停止。 最近创建了一个名为 tsParticles 的分叉。 本教程的内容已更新为使用这个新的分叉。
在本教程中,您将简要介绍该库的一些功能以及加载和修改示例配置。
先决条件
要完成本教程,您需要:
- 现代网络浏览器。
- 熟悉 JSON 可能有助于理解配置文件。 参考JSON简介。
第 1 步 — 设置项目
出于教程目的,此示例将重点关注本地 index.html
文件和内容交付网络 (CDN) 托管的 tsParticles
库的副本。
在您的终端窗口中,创建一个新的项目目录:
mkdir tsparticles-example
然后,导航到新的项目目录:
cd tsparticles-example
接下来,创建一个 index.html
文件:
索引.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>tsParticles</title> <style> * { box-sizing: border-box; } html, body { margin: 0; padding: 0; } body { background-color: #212121; } </style> </head> <body> </body> </html>
该库将需要一个 div
和一个 id
来连接画布。 将新的 <div id="tsparticles">
添加到 body
:
索引.html
<body> <div id="tsparticles"></div> </body>
然后,将 CDN 托管的库添加到 body
:
索引.html
<body> <div id="tsparticles"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/tsparticles/1.18.1/tsparticles.min.js" integrity="sha512-PYHWDEuXOTJ9MZ+/QHqkbgiEYZ+LImQv3i/9NyYOABFvK37e4q4Wg7aQDN1JpoGiEu1TYZh6JMrZluZox2gbDA==" crossorigin="anonymous" ></script> </body>
笔记: tsparticles.js
is also available via npm
:
npm install tsparticles
接下来,通过指定应该挂钩的 id
来初始化 tsParticles
(在本例中为 tsparticles
):
索引.html
<body> <div id="tsparticles"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/tsparticles/1.18.1/tsparticles.min.js" integrity="sha512-PYHWDEuXOTJ9MZ+/QHqkbgiEYZ+LImQv3i/9NyYOABFvK37e4q4Wg7aQDN1JpoGiEu1TYZh6JMrZluZox2gbDA==" crossorigin="anonymous" ></script> <script> tsParticles.load('tsparticles'); </script> </body>
在网络浏览器中访问 index.html
时,您应该观察到几个随机散布在网页上的粒子。 验证到目前为止的一切是否按预期工作,您可以继续添加自定义选项。
第 2 步 — 加载配置
库文档列出了许多可用的 选项。 这些包括 background
、interactivity
、particles
等。
首先,复制 default.json 并将其粘贴为 particles
:
索引.html
<script> const particles = { "fpsLimit": 60, "particles": { "number": { "value": 80, "density": { "enable": true, "value_area": 800 } }, "color": { "value": "#ff0000", "animation": { "enable": true, "speed": 20, "sync": true } }, "shape": { "type": "circle", "stroke": { "width": 0 }, "polygon": { "nb_sides": 5 }, }, "opacity": { "value": 0.5, "random": false, "anim": { "enable": false, "speed": 3, "opacity_min": 0.1, "sync": false } }, "size": { "value": 3, "random": true, "anim": { "enable": false, "speed": 20, "size_min": 0.1, "sync": false } }, "links": { "enable": true, "distance": 100, "color": "#ffffff", "opacity": 0.4, "width": 1 }, "move": { "enable": true, "speed": 6, "direction": "none", "random": false, "straight": false, "out_mode": "out", "attract": { "enable": false, "rotateX": 600, "rotateY": 1200 } } }, "interactivity": { "detect_on": "canvas", "events": { "onhover": { "enable": true, "mode": "repulse" }, "onclick": { "enable": true, "mode": "push" }, "resize": true }, "modes": { "grab": { "distance": 400, "line_linked": { "opacity": 1 } }, "bubble": { "distance": 400, "size": 40, "duration": 2, "opacity": 0.8 }, "repulse": { "distance": 200 }, "push": { "particles_nb": 4 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true, "background": { "color": "#000000", "image": "", "position": "50% 50%", "repeat": "no-repeat", "size": "cover" } }; tsParticles.load('tsparticles'); </script>
在 tsParticles.load()
调用中使用这个新变量:
<script> // ... tsParticles.load('tsparticles', particles); </script>
在网络浏览器中访问 index.html
时,您应该观察到由线条连接并穿过屏幕的小圆圈。
第 3 步 — 自定义配置
tsParticles
可用的选项相互影响。 您应该尝试调整值并查看它们如何影响粒子。
使用前面定义的 particles
,您可以像这样修改配置的值:
索引.html
<script> const particles = { "fpsLimit": 60, "particles": { "number": { "value": 40, "density": { "enable": true, "value_area": 800 } }, "color": { "value": "#ff9800", "animation": { "enable": false, "speed": 20, "sync": true } }, "shape": { "type": "polygon", "stroke": { "width": 2 }, "polygon": { "nb_sides": 6 }, }, "opacity": { "value": 0.5, "random": false, "anim": { "enable": false, "speed": 3, "opacity_min": 0.1, "sync": false } }, "size": { "value": <^>20<>, "random": true, "anim": { "enable": false, "speed": 20, "size_min": 0.1, "sync": false } }, "links": { "enable": false, "distance": 100, "color": "#ffffff", "opacity": 0.4, "width": 1 }, "move": { "enable": true, "speed": 6, "direction": "down", "random": false, "straight": false, "out_mode": "out", "attract": { "enable": false, "rotateX": 600, "rotateY": 1200 } } }, "interactivity": { "detect_on": "canvas", "events": { "onhover": { "enable": true, "mode": "repulse" }, "onclick": { "enable": true, "mode": "push" }, "resize": true }, "modes": { "grab": { "distance": 400, "line_linked": { "opacity": 1 } }, "bubble": { "distance": 400, "size": 40, "duration": 2, "opacity": 0.8 }, "repulse": { "distance": 200 }, "push": { "particles_nb": 4 }, "remove": { "particles_nb": 2 } } }, "retina_detect": true, "background": { "color": "#ffffff", "image": "", "position": "50% 50%", "repeat": "no-repeat", "size": "cover" } }; tsParticles.load('tsparticles', particles); </script>
此代码更改将使背景 color
切换为白色。 它还将粒子的 shape
从圆形更改为六边形(六边形多边形)。 更改了多边形的 number
和 size
。 链接的行已被删除。 direction
从 none
更改为 bottom
。
在网络浏览器中访问 index.html
时,您应该看到金色的六边形在页面下方层叠。
试验配置
为了更广泛地了解该库提供的潜力,您可以查看 tsParticles
站点上提供的各种 Samples。
使用下拉菜单选择一个有趣的样本。 您可以使用此页面上的编辑器来修改值。 然后单击 Reload 以查看更改。
如果要导出更改,请单击 More,然后单击 Export Config。 这将以 JSON 格式显示配置。
注意: 其中一些演示可能需要额外的依赖项。 例如,Font Awesome 示例需要 Font Awesome 库。
花一些时间将这些新配置分配给 index.html
中早期的 particle
变量,并在 Web 浏览器中刷新页面。
结论
在本教程中,您学习了如何在本地使用 tsParticles
库(以前称为 Particles.js
)。
tsParticles
可用于醒目的背景。 但是,您可能需要权衡浏览器支持、慢速网络上的加载时间以及较慢计算机上的性能等因素。
如果您想了解有关 JavaScript 的更多信息,请查看 我们的 JavaScript 主题页面 以获取练习和编程项目。