迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

使用 TypeScript 隐藏/显示元素

作者:迹忆客 最近更新:2022/10/09 浏览次数:

要在 TypeScript 中隐藏/显示元素,请使用 style.display 属性来确定元素是显示还是隐藏。 如果其 display 属性设置为 none,则通过将其设置为 block 来显示该元素,否则通过将其 display 属性设置为 none 来隐藏该元素。

这是本文中示例的 HTML。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      #container {
        background-color: lime;
        width: 150px;
        height: 150px;
      }
    </style>
  </head>
  <body>
    <div id="container">Container content</div>

    <button id="btn">Hide element</button>

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

这是相关的 TypeScript 代码。

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

const btn = document.getElementById('btn');

if (el != null && btn != null) {
  btn.addEventListener('click', function handleClick() {
    if (el.style.display === 'none') {
      // ✅ Shows element if hidden
      el.style.display = 'block';

      btn.textContent = 'Hide element';
    } else {
      // ✅ Hides element if shown
      el.style.display = 'none';

      btn.textContent = 'Show element';
    }
  });
}

我们使用 if 语句作为类型保护,因为如果在 DOM 中找不到具有提供的 id 的元素,则 document.getElementById 方法返回 null。

if 语句帮助我们从 elbtn 变量的类型中删除 null,因此我们可以安全地访问它们的属性。

我们为按钮添加了一个点击事件监听器。每次单击按钮时,都会调用 handleClick 函数。

在函数中,我们检查元素的显示属性是否设置为无。

如果元素的 display 属性设置为 none,则它是隐藏的,在这种情况下,我们将其 display 属性设置为 block 以显示该元素。

否则,元素会显示出来,所以我们将它的 display 属性设置为 none 来隐藏它。

我们还使用了 textContent 属性,在元素隐藏/显示时更新按钮的文本。

我们在示例中使用了 display 属性,但是根据我们的用例,可能需要使用 visibility 属性。

当元素的 display 属性设置为 none 时,该元素将从 DOM 中删除并且对布局没有影响。文档呈现为好像该元素不存在。

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

这是一个使用可见性属性通过其 id 隐藏/显示元素的示例。

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

const btn = document.getElementById('btn');

if (el != null && btn != null) {
  btn.addEventListener('click', function handleClick() {
    if (el.style.visibility === 'hidden') {
      // ✅ Shows element if hidden
      el.style.visibility = 'visible';

      btn.textContent = 'Hide div';
    } else {
      // ✅ Hides element if shown
      el.style.visibility = 'hidden';

      btn.textContent = 'Show div';
    }
  });
}

如果单击按钮,我们将看到该元素被隐藏,但是该按钮不会在页面上占据其位置。

即使该元素没有被渲染,它仍然会像往常一样影响页面上的布局。

当我们使用 display 属性隐藏元素时,按钮将在 DOM 中占据它的位置,因为 div 元素从文档中完全删除。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便