首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在第二次点击时关闭手风琴?(仅限css和JS )

在第二次点击时关闭手风琴,可以通过CSS和JavaScript来实现。

首先,需要给手风琴的每个选项添加一个点击事件监听器。当点击某个选项时,通过JavaScript来切换该选项的状态,即打开或关闭。

HTML结构示例:

代码语言:html
复制
<div class="accordion">
  <div class="accordion-item">
    <div class="accordion-header">选项1</div>
    <div class="accordion-content">内容1</div>
  </div>
  <div class="accordion-item">
    <div class="accordion-header">选项2</div>
    <div class="accordion-content">内容2</div>
  </div>
  <div class="accordion-item">
    <div class="accordion-header">选项3</div>
    <div class="accordion-content">内容3</div>
  </div>
</div>

CSS样式示例:

代码语言:css
复制
.accordion-item {
  border: 1px solid #ccc;
  margin-bottom: 10px;
}

.accordion-header {
  background-color: #f0f0f0;
  padding: 10px;
  cursor: pointer;
}

.accordion-content {
  display: none;
  padding: 10px;
}

JavaScript代码示例:

代码语言:javascript
复制
// 获取所有手风琴选项
var accordionItems = document.querySelectorAll('.accordion-item');

// 给每个选项添加点击事件监听器
accordionItems.forEach(function(item) {
  var header = item.querySelector('.accordion-header');
  var content = item.querySelector('.accordion-content');

  header.addEventListener('click', function() {
    // 切换选项的状态
    if (content.style.display === 'none') {
      content.style.display = 'block';
    } else {
      content.style.display = 'none';
    }
  });
});

以上代码会实现一个基本的手风琴效果,点击选项的头部时,对应的内容会展开或收起。如果要在第二次点击时关闭手风琴,可以在JavaScript代码中稍作修改:

代码语言:javascript
复制
// 获取所有手风琴选项
var accordionItems = document.querySelectorAll('.accordion-item');

// 给每个选项添加点击事件监听器
accordionItems.forEach(function(item) {
  var header = item.querySelector('.accordion-header');
  var content = item.querySelector('.accordion-content');

  var isOpen = false; // 记录选项的状态,默认为关闭

  header.addEventListener('click', function() {
    // 切换选项的状态
    if (isOpen) {
      content.style.display = 'none';
      isOpen = false;
    } else {
      // 先关闭其他选项
      accordionItems.forEach(function(otherItem) {
        var otherContent = otherItem.querySelector('.accordion-content');
        otherContent.style.display = 'none';
      });

      content.style.display = 'block';
      isOpen = true;
    }
  });
});

这样修改后,点击某个选项时,会先关闭其他选项,然后再打开当前选项。这样在第二次点击时,就能关闭手风琴了。

请注意,以上代码只是一个简单的示例,实际应用中可能需要根据具体情况进行修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(六)

    当前后端分离时,权限问题的处理也和我们传统的处理方式有一点差异。笔者前几天刚好在负责一个项目的权限管理模块,现在权限管理模块已经做完了,我想通过5-6篇文章,来介绍一下项目中遇到的问题以及我的解决方案,希望这个系列能够给小伙伴一些帮助。本系列文章并不是手把手的教程,主要介绍了核心思路并讲解了核心代码,完整的代码小伙伴们可以在GitHub上star并clone下来研究。另外,原本计划把项目跑起来放到网上供小伙伴们查看,但是之前买服务器为了省钱,内存只有512M,两个应用跑不起来(已经有一个V部落开源项目在运行

    07
    领券