使用 JavaScript 在延迟后显示元素

延迟后显示元素:

  1. 使用 setTimeout() 方法在延迟后调用函数。
  2. 在函数中,将元素的可见性属性设置为可见。
  3. 将延迟(以毫秒为单位)作为第二个参数传递给 setTimeout() 方法。

这是本文中示例的 HTML。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />

    <style>
      #box {
        visibility: hidden;
        background-color: salmon;
        width: 100px;
        height: 100px;
      }
    </style>
  </head>

  <body>
    <div id="box">Some content here</div>

    <script src="index.js"></script>
  </body>
</html>

这是相关的 JavaScript 代码。

const el = document.getElementById('box');

setTimeout(() => {
  el.style.visibility = 'visible';

  // 👇️ if you used `display` to hide element
  // el.style.display = 'block';
}, 2000); // 👈️ delay in milliseconds

我们使用 document.getElementById() 方法选择了我们想要显示的元素。

我们使用 setTimeout 方法在延迟后调用函数。

我们传递给该方法的第一个参数是我们要调用的函数,第二个参数 – 以毫秒为单位的延迟。

在示例中,我们使用 2000 毫秒作为延迟,即 2 秒。

在示例中,我们使用了 visibility 属性来隐藏和显示元素,但是如果我们最初用于隐藏元素,则可能需要使用 display 属性。

另一方面,当元素的可见性属性设置为隐藏时,它仍然会占用页面空间,但是该元素是不可见的(未绘制)。它仍然会像往常一样影响页面上的布局。

通常在延迟后显示元素时,应该使用可见性属性来避免页面上的累积布局移位,这可能会使用户感到困惑。

这是一个使用 display 属性在延迟后显示元素的示例。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />

    <style>
      #box {
        display: none;
        background-color: salmon;
        width: 100px;
        height: 100px;
      }
    </style>
  </head>

  <body>
    <div>One, two, three</div>
    <div id="box">Some content here</div>
    <div>One, two, three</div>

    <script src="index.js"></script>
  </body>
</html>

这是相关的 JavaScript 代码。

const el = document.getElementById('box');

setTimeout(() => {
  el.style.display = 'block';
}, 2000); // 👈️ delay in milliseconds

如果加载页面,我们将看到元素隐藏时如何在页面上不占用空间而其他元素占用其空间。

如果我们使用了可见性属性,该元素仍然会占用页面上的空间,即使它是隐藏的。