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

如何使用纯javascript显示和隐藏多个下拉菜单并通过单击外部来关闭

使用纯 JavaScript 实现显示和隐藏多个下拉菜单,并通过单击外部来关闭的方法如下:

  1. HTML 结构:在 HTML 中创建多个下拉菜单,并为每个下拉菜单添加一个共同的类名,以便在 JavaScript 中选择它们。同时,为了能够通过单击外部来关闭下拉菜单,需要在页面上添加一个透明的遮罩层。
代码语言:txt
复制
<div class="dropdown">
  <button class="dropdown-toggle">菜单1</button>
  <ul class="dropdown-menu">
    <li>选项1</li>
    <li>选项2</li>
    <li>选项3</li>
  </ul>
</div>

<div class="dropdown">
  <button class="dropdown-toggle">菜单2</button>
  <ul class="dropdown-menu">
    <li>选项1</li>
    <li>选项2</li>
    <li>选项3</li>
  </ul>
</div>

<div id="overlay"></div>
  1. CSS 样式:为下拉菜单和遮罩层添加样式,使其能够正确显示和隐藏。
代码语言:txt
复制
.dropdown-menu {
  display: none;
  position: absolute;
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 10px;
}

#overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
  1. JavaScript 代码:使用 JavaScript 监听按钮的点击事件,根据当前状态切换下拉菜单的显示和隐藏,并通过单击遮罩层来关闭下拉菜单。
代码语言:txt
复制
// 获取所有下拉菜单和遮罩层
const dropdowns = document.querySelectorAll('.dropdown');
const overlay = document.getElementById('overlay');

// 监听按钮的点击事件
dropdowns.forEach((dropdown) => {
  const toggleButton = dropdown.querySelector('.dropdown-toggle');
  const menu = dropdown.querySelector('.dropdown-menu');

  toggleButton.addEventListener('click', () => {
    if (menu.style.display === 'none') {
      // 显示下拉菜单
      menu.style.display = 'block';
      overlay.style.display = 'block';
    } else {
      // 隐藏下拉菜单
      menu.style.display = 'none';
      overlay.style.display = 'none';
    }
  });
});

// 单击遮罩层关闭下拉菜单
overlay.addEventListener('click', () => {
  dropdowns.forEach((dropdown) => {
    const menu = dropdown.querySelector('.dropdown-menu');
    menu.style.display = 'none';
  });
  overlay.style.display = 'none';
});

通过以上代码,可以实现纯 JavaScript 显示和隐藏多个下拉菜单,并且通过单击外部来关闭下拉菜单。你可以根据实际需求修改样式和细节。

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

相关·内容

领券