【问题标题】:How to put a div above animated body without covering body如何在不覆盖身体的情况下将 div 放在动画身体上方
【发布时间】:2020-10-11 09:16:47
【问题描述】:

我正在开发一个网站,以了解如何使用 HTML、CSS 和 JS 构建网站。我遇到了一个错误,当我将 div 放在 body 的背景动画上方时,背景动画不会越过 div。我不知道如何解决这个问题,而且我的互联网搜索似乎都没有解决这个问题。

这是该程序的 CodePen:https://codepen.io/ckneeland/pen/Exyjygx

HTML文件是这样的:

<!DOCTYPE html>
<html lang="en" >
<head>

  <meta charset="UTF-8">
  <title>Data</title>
  <link rel="stylesheet" href="./style.css">
</head>
<body>
  <div class="wrapper fade-in" id="particles-js">
    <table class="center-table">
      <tr>
        <td><img class="resize" src="Images/Facebook.png" alt="Facebook"></td>
        <td><img class="resize" src="Images/Instagram.png" alt="Instagram"></td>
        <td><img class="resize" src="Images/Snapchat.png" alt="Snapchat"></td>
        <td><img class="resize" src="Images/Twitter.png" alt="Twitter"></td>
        <td><img class="resize" src="Images/YouTube.png" alt="YouTube"></td>
      </tr>
      <tr>
        <br>
        <br>
        <td><img class="resize" src="Images/TikTok.png" alt="TikTok"></td>
        <td><img class="resize2" src="Images/Google2.png" alt="Google"></td>
        <td><img class="resize" src="Images/Venmo2.png" alt="Venmo"></td>
        <td><img class="resize" src="Images/Reddit2.png" alt="Reddit"></td>
        <td><img class="resize" src="Images/LinkedIn.png" alt="LinkedIn"></td>
      </tr>
    </table>
  </div>
  <script src="http://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
  <script src="./script.js"></script>
</body>
</html>

JS/CSS 文件在 CodePen 上,但我不认为它们是这里的问题

图片不会显示,因为我没有在此处将它们添加到项目中

另外,一个小的旁注:我怎样才能使这个 div 对象垂直居中?它已经水平居中了。

【问题讨论】:

  • 尝试将z-index: -1 添加到 div。
  • @barhatsor z-index 没有改变,还有其他想法吗?

标签: javascript html css


【解决方案1】:

使用开发者工具查看元素的结束位置。然后使用绝对定位和适当的 z-index 来创建叠加层。

在您的示例中,只要.center-table { position: absolute } 可能就是您所追求的。

关于垂直对齐的第二个问题,我建议使用 flexbox 进行布局。

【讨论】:

  • 谢谢!,这让动画可以在后台运行。不过把桌子放在左边
【解决方案2】:

particlesJS("particles-js", {
  particles: {
    number: { value: 80, 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.2,
      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: true,
      distance: 150,
      color: "#ffffff",
      opacity: 0.4,
      width: 1
    },
    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", "bubble"] },
      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);
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);
<body>
  <div id="particles-js">
  <div class="fade-in" >
    <table class="center-table">
      <tr>
        <td><img class="resize" src="Images/Facebook.png" alt="Facebook"></td>
        <td><img class="resize" src="Images/Instagram.png" alt="Instagram"></td>
        <td><img class="resize" src="Images/Snapchat.png" alt="Snapchat"></td>
        <td><img class="resize" src="Images/Twitter.png" alt="Twitter"></td>
        <td><img class="resize" src="Images/YouTube.png" alt="YouTube"></td>
      </tr>
      <tr>
        <br>
        <br>
        <td><img class="resize" src="Images/TikTok.png" alt="TikTok"></td>
        <td><img class="resize2" src="Images/Google2.png" alt="Google"></td>
        <td><img class="resize" src="Images/Venmo2.png" alt="Venmo"></td>
        <td><img class="resize" src="Images/Reddit2.png" alt="Reddit"></td>
        <td><img class="resize" src="Images/LinkedIn.png" alt="LinkedIn"></td>
      </tr>
    </table>
  </div>
    </div>
  <script src="http://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
  <script src="./script.js"></script>
</body>
</html>

希望这是您寻找的结果,基本上我已经为动画背景添加了一个 div 与包装淡入淡出 div 分开,并且淡入淡出类确定为 位置:固定;比你可以用left定位它:xx; 顶部:xx;对:xx;底部:xx;属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    相关资源
    最近更新 更多