欢迎访问宙启技术站
智能推送

js实现点击展开隐藏效果(实例代码)

发布时间:2023-05-14 04:24:44

在我们的网页设计中,经常会有点击展开隐藏效果的需求。比如一个列表页默认只显示前几个条目,点击“显示更多”按钮后,会展开剩余的条目。这种效果可以通过 JavaScript 实现。

下面,我将介绍一种简单的实现方式。

1. HTML 结构

我们首先需要在 HTML 中,创建要展开隐藏的内容和点击按钮的元素。以下是一个示例代码:

<div class="wrapper">
  <h2>题目</h2>
  <div class="content">
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
    <p>这里是要展开的内容</p>
  </div>
  <button class="toggle-button">显示更多</button>
</div>

在上面的代码中,我们创建了一个 wrapper 的容器元素,里面包含了一个 h2 标题和 content 的内容容器。内容容器里面有多个要展开的内容 p,同时,我们还创建了一个 toggle-button 按钮,用于触发展开/收起内容的效果。

2. CSS

我们需要设置好展开前和展开后的样式,以及控制要展开的内容显示/隐藏的样式。以下是示例 CSS 代码:

.wrapper {
  max-height: 200px;
  overflow: hidden;
}

.content {
  margin: 10px 0;
  display: none;
}

.button {
  display: block;
  margin-top: 10px;
}

在上面的代码中,我们在 wrapper 容器上设置了最大高度和隐藏溢出内容。在 content 容器上设置了默认的 displaynone,并且在按钮上添加了一些基本的样式。

3. JavaScript

现在我们来到了最重要的 JavaScript 部分。我们需要添加一个监听器,在按钮被点击时,切换要展开的内容的 display 属性。

代码如下:

// 获取要展示的内容
var content = document.querySelector('.content');

// 获取按钮元素
var button = document.querySelector('.toggle-button');

// 在按钮上添加监听器
button.addEventListener('click', function() {
  // 如果内容的 display 属性为 "none",则点击按钮后,修改它为 "block",并修改按钮的文本
  if (content.style.display === "none") {
    content.style.display = "block";
    button.textContent = "收起";
  } 
  // 如果内容的 display 属性为 "block",则点击按钮后,修改它为 "none",并修改按钮的文本
  else {
    content.style.display = "none";
    button.textContent = "显示更多";
  }
});

在上面的代码中,我们首先使用 querySelector 方法获取到了要展开的内容和按钮元素。然后,我们在按钮元素上添加了一个 click 监听器,当按钮被点击时,会执行我们的回调函数。

回调函数里面,我们首先检查要展开的内容的 display 属性是否为 “none”。如果是,则将其更改为 “block”,即显示内容,并将按钮的文本修改为 “收起”。

如果 display 属性已经被修改为 “block”,则将其恢复为 “none”,即隐藏内容,同时也修改按钮文本为 “显示更多”。

综上所述,这样就实现了一个点击展开隐藏效果,用户可通过单击按钮实现内容的展开和收起。