使用 JavaScript 在延迟后显示元素
延迟后显示元素:
- 使用
setTimeout()
方法在延迟后调用函数。 - 在函数中,将元素的可见性属性设置为可见。
- 将延迟(以毫秒为单位)作为第二个参数传递给
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 秒。
在函数内部,我们将元素的可见性属性设置回可见。
请注意
,我们最初在 HTML 的样式标记中将该属性设置为隐藏。
在示例中,我们使用了 visibility
属性来隐藏和显示元素,但是如果我们最初用于隐藏元素,则可能需要使用 display
属性。
当元素的
display
属性设置为 none 时,该元素将从 DOM 中删除并且对布局没有影响。文档呈现为好像该元素不存在。
另一方面,当元素的可见性属性设置为隐藏时,它仍然会占用页面空间,但是该元素是不可见的(未绘制)。它仍然会像往常一样影响页面上的布局。
通常在延迟后显示元素时,应该使用可见性属性来避免页面上的累积布局移位,这可能会使用户感到困惑。
这是一个使用 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
如果加载页面,我们将看到元素隐藏时如何在页面上不占用空间而其他元素占用其空间。
当我们将元素的
display
属性设置为 block 时,它会下推下一个元素的内容。
如果我们使用了可见性属性,该元素仍然会占用页面上的空间,即使它是隐藏的。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。