使用 JavaScript 在延迟后显示元素
Show an Element after Delay using JavaScript
延迟后显示元素:
- 使用
setTimeout()
方法在延迟后调用函数。 - 在函数中,将元素的
visibility
属性设置为visible
。 - 将以毫秒为单位的延迟作为第二个参数传递给该
setTimeout
方法。
以下是本文示例的 HTML。
索引.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 代码。
索引.js
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方法在延迟后调用函数。
我们传递给该方法的第一个参数是我们要调用的函数,第二个参数 –delay
以毫秒为单位。
在示例中,我们使用2000
ms 作为延迟,等于2
秒。
在函数内部,我们将元素的
visibility
属性设置回visible
。请注意,我们最初在 HTMLhidden
的style
标记中将属性设置为。
在示例中,我们使用
visibility属性来隐藏和显示元素,但是如果您最初使用 display 属性
来隐藏元素,则可能需要使用
display属性。
当元素的
display
属性设置为 时none
,该元素将从 DOM 中移除并且对布局没有影响。文档呈现为好像该元素不存在一样。另一方面,当元素的visibility
属性设置为 时hidden
,它仍会占用页面空间,但该元素是不可见的(未绘制)。它仍然会像往常一样影响您页面上的布局。
通常在延迟显示元素时,您应该使用该visibility
属性来避免页面上的累积布局偏移,这会让用户感到困惑。
下面是一个使用display
属性在延迟后显示元素的示例。
索引.html
<!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 代码。
索引.js
const el = document.getElementById('box'); setTimeout(() => { el.style.display = 'block'; }, 2000); // 👈️ delay in milliseconds
如果您加载页面,您将看到当元素被隐藏时,它不占用页面空间而其他元素占用它的空间。
当我们将元素的
display
属性设置为 时block
,它会下推下一个元素的内容。如果我们使用了这个visibility
属性,元素仍然会占用页面空间,即使它是隐藏的。