基于Particles.js实现仿知乎粒子动态背景效果

作者:半夏

时间:2026-10-22

浏览:256

本文介绍如何利用Particles.js库在网页中实现类似知乎登录页的粒子动态背景。通过引入JS文件、创建容器及配置参数,可快速生成炫酷视觉效果。文中还分享了直接内联配置的方法及Chrome浏览器下的兼容性问题处理。

文章目录

Particles.js粒子背景效果实现教程

近期登录知乎时注意到其登录页面采用了极具视觉冲击力的粒子动态效果。经查阅,该效果是通过Particles.js库基于HTML5 Canvas画布绘制粒子颗粒实现的。

效果示意图如下:

Particles.js粒子背景效果实现教程

具体效果展示:

觉得效果不错,便尝试仿制了一个,仅供娱乐交流。

Particles.js粒子背景效果实现教程

项目地址:https://github.com/VincentGarreau/particles.js/

具体操作步骤与配置

实现步骤:

网上虽有基础流程参考,但直接应用于登录页面时可能存在小Bug,需进行适当调整。

第一步,在页面中引入particles.js脚本文件。


<script src="js/particles.js"></script>

第二步,在页面中创建一个div元素作为粒子容器的载体(通常置于页面底部,CSS样式需特别优化)。


<div id="particles"></div>
<style type="text/css">
 #particles {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1; //这个z-index 要是不设置 会对登录表单的点击产生干扰,会去抢风头,不好好做一个安静的背景。
  background-color: #26AFE3;
 }
</style>

第三步,加载配置文件。网上教程多建议使用load()方法并配合独立的JSON配置文件,但这涉及路径配置问题,容易出错。

可参考官方Demo示例:http://codepen.io/VincentGarreau/pen/pnlso

推荐直接在JavaScript代码中编写配置项。


<script type="text/javascript">
// particlesJS.load('particles', './js/app/particles.json', function() {
//  console.log('callback - particles.js config loaded');
// });
particlesJS("particles", {
 "particles": {
  "number": {
   "value": 30,
   "density": {
    "enable": true,
    "value_area": 800
   }
  },
  "color": {
   "value": "#ffffff"
  },
  "shape": {
   "type": "circle",
   "stroke": {
    "width": 0,
    "color": "#000000"
   },
   "polygon": {
    "nb_sides": 5
   },
   "image": {
    "src": "img/github.svg",
    "width": 100,
    "height": 100
   }
  },
  "opacity": {
   "value": 0.5,
   "random": false,
   "anim": {
    "enable": false,
    "speed": 1,
    "opacity_min": 0.1,
    "sync": false
   }
  },
  "size": {
   "value": 10,
   "random": true,
   "anim": {
    "enable": false,
    "speed": 50,
    "size_min": 0.1,
    "sync": false
   }
  },
  "line_linked": {
   "enable": true,
   "distance": 300,
   "color": "#ffffff",
   "opacity": 0.4,
   "width": 2
  },
  "move": {
   "enable": true,
   "speed": 8,
   "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": false,
    "mode": "repulse"
   },
   "onclick": {
    "enable": false,
    "mode": "push"
   },
   "resize": true
  },
  "modes": {
   "grab": {
    "distance": 800,
    "line_linked": {
     "opacity": 1
    }
   },
   "bubble": {
    "distance": 800,
    "size": 80,
    "duration": 2,
    "opacity": 0.8,
    "speed": 3
   },
   "repulse": {
    "distance": 400,
    "duration": 0.4
   },
   "push": {
    "particles_nb": 4
   },
   "remove": {
    "particles_nb": 2
   }
  }
 },
 "retina_detect": true
});
</script>

第四步,配置参数option及使用方式。具体参数详情可参考GitHub官网文档,用于控制粒子数量、运动速度等属性。

Particles.js在实际使用中仍存在一些兼容性问题,例如在Chrome浏览器中下载文件后切换至该页面时可能出现渲染异常,目前仍在寻找解决方案。

总结

以上介绍了基于Particles.js制作仿知乎粒子动态背景效果的方法,希望能为读者提供帮助。如有疑问欢迎留言,小编会及时回复。感谢大家对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章