【问题标题】:Optimise particles.js background to avoid high CPU usage优化particle.js后台,避免CPU占用过高
【发布时间】:2019-12-10 13:50:30
【问题描述】:

我正在做一个项目,我想使用particle.js 用粒子填充两个div 元素。正如预期的那样,这样做会导致高 CPU 使用率导致各种麻烦——网站变得迟钝,其他 JS 库(键入文本)变得缓慢,显然几秒钟后风扇就会打开。

示例:https://codepen.io/sharkmountain/pen/bGNpdMe

// ParticlesJS Config.
particlesJS("particles-js", {
  "particles": {
    "number": {
      "value": 2000,
      "density": {
        "enable": true,
        "value_area": 100
      }
    },
    "color": {
      "value": "#ffffff"
    },
    "shape": {
      "type": "circle",
      "stroke": {
        "width": 0,
        "color": "#000000"
      },
      "polygon": {
        "nb_sides": 5
      },
    },
    "opacity": {
      "value": 0.5,
      "random": false,
      "anim": {
        "enable": false,
        "speed": 1,
        "opacity_min": 0.1,
        "sync": false
      }
    },
    "size": {
      "value": 3,
      "random": true,
      "anim": {
        "enable": false,
        "speed": 40,
        "size_min": 0.1,
        "sync": false
      }
    },
    "line_linked": {
      "enable": false
    },
    "move": {
      "enable": true,
      "speed": 6,
      "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": 140,
        "line_linked": {
          "opacity": 1
        }
      },
      "repulse": {
        "distance": 200,
        "duration": 0.4
      },
      "push": {
        "particles_nb": 4
      },
      "remove": {
        "particles_nb": 2
      }
    }
  },
  "retina_detect": true
});

我尝试将 FTP 帧限制器设置为 suggested here,但这并没有什么不同。

老实说,我并不期望有解决方案,但我很好奇是否有人知道如何在不引起性能问题的情况下使其工作。

【问题讨论】:

    标签: javascript particles particles.js


    【解决方案1】:

    你真的只有 3 个我能看到的选项

    1. 限制 FPS。对于像这样的普通旧动画来说,30 已经足够了。

    2. 减少粒子的数量和/或大小(这会降低填充率)

    3. 消除透明度(这将减少过度绘制)

    【讨论】:

    • 谢谢@gburton - 我已经尝试过 1 和 2,但我也会把你的第三个建议放在一起,看看是否有什么不同。感谢您的快速答复。
    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2013-08-04
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多