为什么我的 React 站点大小调整不正确?
Why does my React site resize incorrectly?
我一直在使用 React 创建我自己的专业网站。有了这个,我想要一个很酷的背景,我决定在其中使用 https://www.npmjs.com/package/react-particles-js
我遇到的唯一问题是,在移动设备上,粒子不会填满屏幕,而是似乎卡在屏幕顶部。查看此内容的最简单方法是转至 https://my-app-bwp36ovux.vercel.app/ 并在您的显示器上查看该站点,然后使用 F12 调试控制台将其更改为移动设备。这样做时请注意背景中的漂浮粒子。
我得到了我用来设置粒子值的常量
const particalOpt = {
particles:{
number:{
value: 150,
density: {
enable: true,
value_area: 800
}
},
line_linked:{
distance: 100,
opacity: .2,
width: 2,
},
move:{
speed: 1,
bounce: true,
}
}
}
我直接用
来调用
<div className="background">
<Particles
params = {particalOpt}
/>
</div>
我似乎无法理解为什么使用背景属性这些粒子不会填充移动设备。
如需完整代码,请转至 https://github.com/13Smat/MySite
提前致谢。
请查看@Drew Reese 的评论并编辑您的问题。
同时我可以提供a helpful example
此处对您最有帮助的属性是 background-size
, background-position
. You can also look at other background properties that might help。
旁注:React 不会特别改变样式的工作方式,我建议您尝试使用 CSS - 这是学习的最佳方式
问题
背景 div 有 100vw 和 100vh,但 canvas 有自己的宽度和高度,每个都覆盖到 100%。问题是 div 呈现 canvas 没有绝对尺寸供 canvas 继承或相对。
DOM
<div class="background">
<div id="tsparticles"> // <-- no height/width for canvas to be % of
<canvas
class="tsparticles-canvas-el"
width="558"
height="281"
style="width: 100%; height: 100%;" // <-- applied style
></canvas>
</div>
</div>
canvas 元素应用的样式:
element.style {
width: 100%;
height: 100%;
}
解决方案
为 #tsparticles
div 提供宽度和高度。将以下 CSS 添加到您的 App.css
文件。
#tsparticles {
width: 100%;
height: 100%;
}
如果你想让粒子像全屏背景一样我会推荐backgroundMode
选项,你可以阅读更多here
您可以像这样设置选项:
{
backgroundMode: {
enable: true,
zIndex: 0
}
}
如果您将 zIndex
属性 设置为负值,请记住将 detectsOn
属性 更改为 ”window”
如果您需要鼠标交互
我一直在使用 React 创建我自己的专业网站。有了这个,我想要一个很酷的背景,我决定在其中使用 https://www.npmjs.com/package/react-particles-js
我遇到的唯一问题是,在移动设备上,粒子不会填满屏幕,而是似乎卡在屏幕顶部。查看此内容的最简单方法是转至 https://my-app-bwp36ovux.vercel.app/ 并在您的显示器上查看该站点,然后使用 F12 调试控制台将其更改为移动设备。这样做时请注意背景中的漂浮粒子。
我得到了我用来设置粒子值的常量
const particalOpt = {
particles:{
number:{
value: 150,
density: {
enable: true,
value_area: 800
}
},
line_linked:{
distance: 100,
opacity: .2,
width: 2,
},
move:{
speed: 1,
bounce: true,
}
}
}
我直接用
来调用<div className="background">
<Particles
params = {particalOpt}
/>
</div>
我似乎无法理解为什么使用背景属性这些粒子不会填充移动设备。
如需完整代码,请转至 https://github.com/13Smat/MySite
提前致谢。
请查看@Drew Reese 的评论并编辑您的问题。
同时我可以提供a helpful example
此处对您最有帮助的属性是 background-size
, background-position
. You can also look at other background properties that might help。
旁注:React 不会特别改变样式的工作方式,我建议您尝试使用 CSS - 这是学习的最佳方式
问题
背景 div 有 100vw 和 100vh,但 canvas 有自己的宽度和高度,每个都覆盖到 100%。问题是 div 呈现 canvas 没有绝对尺寸供 canvas 继承或相对。
DOM
<div class="background">
<div id="tsparticles"> // <-- no height/width for canvas to be % of
<canvas
class="tsparticles-canvas-el"
width="558"
height="281"
style="width: 100%; height: 100%;" // <-- applied style
></canvas>
</div>
</div>
canvas 元素应用的样式:
element.style {
width: 100%;
height: 100%;
}
解决方案
为 #tsparticles
div 提供宽度和高度。将以下 CSS 添加到您的 App.css
文件。
#tsparticles {
width: 100%;
height: 100%;
}
如果你想让粒子像全屏背景一样我会推荐backgroundMode
选项,你可以阅读更多here
您可以像这样设置选项:
{
backgroundMode: {
enable: true,
zIndex: 0
}
}
如果您将 zIndex
属性 设置为负值,请记住将 detectsOn
属性 更改为 ”window”
如果您需要鼠标交互