如何使用 React 将 React-Particles-Js 设置为后台?

How to set React-Particles-Js to background using React?

我正在学习 React,在将 React-Particles-Js (https://www.npmjs.com/package/react-particles-js) 设置为我网站的背景时遇到了一些问题。

如果我只渲染

  class App extends Component {
  render() {
    return (
      <div>
      <Particles />
      </div>

    );
  }
}

我得到了我想要的背景。但是,一旦我渲染其他任何东西(例如 h1 标签),它就不会显示 on react-particles-js,可以这么说,而是移动 react-particles- js并单独显示。

例如,如果我渲染

 class App extends Component {
      render() {
        return (
          <div>
          <h1>Hello World</h1>
          <h1>Hello World</h1>
          <h1>Hello World</h1>
          <Particles />


          </div>


        );
      }
    }

    export default App;

发生的事情是 "Hello World" 在屏幕的左上角显示了三次,而 Particles 显示在其下方,这意味着 Particles 被解释为与 h1 (就好像它是另一个 h1 标签)而不是作为所有元素的背景元素——无论它们是 h1 标签、卡片、导航还是其他任何东西——这正是我想要的!

这是我的Particles.js

import React, { Component } from 'react';
import Particles from 'react-particles-js';

var style = {
    width: "100vw",
    height: "100vh",
};


class ParticlesBackground extends Component {

    render() {
        return (
            <div style={style}>
            <Particles
                params={{
                    "particles": {
                    "number": {
                    "value": 90
                    },
                    "size": {
                    "value": 2.5
                    }
                },
                    "interactivity": {
                    "events": {
                    "onhover": {
                    "enable": true,
                    "mode": "repulse"
                    }
                    }
                    }
                }}/>
            </div>
            )
    }
}

export default ParticlesBackground;

这是我的App.js

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Nav from './Nav'
import MainArea from './MainArea';
import Particles from './Particles';
import PeopleCard from './PeopleCard'





class App extends Component {
  render() {
    return (
      <div>
      <h1>Hello World</h1>
      <h1>Hello World</h1>
      <h1>Hello World</h1>
      <Particles />


      </div>


    );
  }
}

export default App;

这就是我看到的 enter image description here 如您所见,粒子和标签似乎被解释为相互排斥。

(PS,我在我的 html.index 中设置 body 标签的背景颜色为#e74c3c,也就是你看到的红色背景)

关于如何解决这个问题有什么建议吗?

我对粒子使用相同的库,这是我的 canvas css,它的工作方式与您想要的一样:

#particle-canvas {
    position:fixed !important;
    left:0;
    top:0;
    width:100%;
    height:100%;
}

固定元素位置并将其设置在屏幕的左上角,在两个维度上都设置为 100%。

希望对您有所帮助

import Particles from 'react-particles-js';
  class App extends Component {
  render() {
    return (
      <div className="App">

         <Particles className="particles"
         params={particlesOptions}/>
        <div
          style={{
            position: "absolute",
            top: 0,
            left: 0,
            width: "100%",
            height: "100%"
          }}
        >
        <Header Data={Data}/>
      </div>
      </div>
    );
  }
}

export default App;