1

我正在使用 Particle.js 库将粒子用作背景,这是 github 链接https://github.com/VincentGarreau/particles.js 我在我的 WordPress 网站上使用它。在包含库后,我在一个页面上使用了粒子背景,它工作正常,但在不存在 html 选择器的页面上(不存在粒子 js id)会产生问题。这是 js 错误出现在那些不存在的页面上:

TypeError: pJS_tag is nullparticles.js?ver=1.0 line 1495

这是我的 HTML 代码:<div id="particles-js"></div>

这是我的js代码:

if($('#particles-js').length > 0){
        particlesJS("particles-js", {"particles":{"number":{"value":80,"density":{"enable":true,"value_area":800}},"color":{"value":"#d5d5d4"},"shape":{"type":"circle","stroke":{"width":0,"color":"#c7cbd2"},"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":8.33451405615796,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":true,"distance":150.02125301084325,"color":"#d5d5d5","opacity":1,"width":1.1668319678621144},"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":"repulse"},"onclick":{"enable":true,"mode":"push"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true});
        //var count_particles, stats, update; stats = new Stats; stats.setMode(0); 
        var stats, update; stats = new Stats; stats.setMode(0); 
        stats.domElement.style.position = 'absolute'; 
        stats.domElement.style.left = '0px'; 
        stats.domElement.style.top = '0px'; 
        document.body.appendChild(stats.domElement); 
        //count_particles = document.querySelector('.js-count-particles'); 
        update = function() {
            stats.begin(); 
            stats.end(); 
            // if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) {
            //      count_particles.innerText = window.pJSDom[0].pJS.particles.array.length; 
            // } 
            requestAnimationFrame(update); 
        }; //requestAnimationFrame(update);
    }
4

1 回答 1

0

head在文件中结束标记之前包含库header.php文件

    <script type='text/javascript' src='http://localhost/demowp/wp-content/themes/sydney/js/particles.js?ver=2.1.4'></script>
    <script type='text/javascript' src='http://localhost/demowp/wp-content/themes/sydney/js/stats.js?ver=2.1.4'></script>
</head>

并在任何你想要的地方包含 div。

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

footer.php在文件中添加此脚本

<script>
    if(jQuery('#particles-js').length){
        particlesJS("particles-js", {"particles":{"number":{"value":80,"density":{"enable":true,"value_area":800}},"color":{"value":"#d5d5d4"},"shape":{"type":"circle","stroke":{"width":0,"color":"#c7cbd2"},"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":8.33451405615796,"random":true,"anim":{"enable":false,"speed":40,"size_min":0.1,"sync":false}},"line_linked":{"enable":true,"distance":150.02125301084325,"color":"#d5d5d5","opacity":1,"width":1.1668319678621144},"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":"repulse"},"onclick":{"enable":true,"mode":"push"},"resize":true},"modes":{"grab":{"distance":400,"line_linked":{"opacity":1}},"bubble":{"distance":400,"size":40,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":200,"duration":0.4},"push":{"particles_nb":4},"remove":{"particles_nb":2}}},"retina_detect":true});
        //var count_particles, stats, update; stats = new Stats; stats.setMode(0); 
        var stats, update; stats = new Stats; stats.setMode(0); 
        stats.domElement.style.position = 'absolute'; 
        stats.domElement.style.left = '0px'; 
        stats.domElement.style.top = '0px'; 
        document.body.appendChild(stats.domElement); 
        //count_particles = document.querySelector('.js-count-particles'); 
        update = function() {
            stats.begin(); 
            stats.end(); 
            // if (window.pJSDom[0].pJS.particles && window.pJSDom[0].pJS.particles.array) {
            //      count_particles.innerText = window.pJSDom[0].pJS.particles.array.length; 
            // } 
            requestAnimationFrame(update); 
        }; //requestAnimationFrame(update);
    }

</script>

它工作正常。小提琴链接

于 2018-04-07T09:54:55.640 回答