【问题标题】:How to move hamburger menu to the front of overlay menu如何将汉堡菜单移动到覆盖菜单的前面
【发布时间】:2016-10-02 16:48:42
【问题描述】:

如何将汉堡菜单移动到覆盖菜单前面,同时保持其位置从移动设备到桌面?这是codepen上的示例

下面是我的代码

HTML

<nav>            
      <button class="hamburger hamburger--squeeze" type="button">
        <span class="hamburger-box"> 
         <span class="hamburger-inner"></span>
        </span>
      </button>

     <div class="overlay">
        some list elements go here
     </div>
</nav>

CSS

.overlay{
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: transparentize($darkest-grey,0.01);
  overflow: auto;
  z-index: 99;
  text-align: center;
  padding-top: 100px;

li{
    list-style: none;
  }
}

.is-active{
    display: block;
}

JavaScript

 <script>
      var hamburger = document.querySelector(".hamburger");
      var overlayMenu = document.querySelector(".overlay");
      hamburger.addEventListener("click", function() {
        hamburger.classList.toggle("is-active");
        overlayMenu.classList.toggle("is-active");
      });
 </script>

我也在使用Bourbon neatHamburgers。如果有更优雅的方法,请告诉我:) 谢谢!

【问题讨论】:

  • .is-active 上更高的 z-index 必须解决您的问题,但如果没有 CSS 的其余部分,我无法为您提供确切的值或属性
  • @daniP 我添加了更多的 CSS。我尝试在 z-index 上添加 9999 的 z-index 但这不起作用:(

标签: javascript jquery html css sass


【解决方案1】:

你需要一个更高的z-index 来做火腿。

请记住 z-index 仅适用于定位元素,您需要更改按钮的默认静态位置。

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0,0,0,.3);
  overflow: auto;
  z-index: 99;
  text-align: center;
  padding-top: 100px;
}

.is-active {
  display: block;
  position:relative;
  z-index:100;
}
<nav>
  <button class="hamburger hamburger--squeeze is-active" type="button">
    <span class="hamburger-box"> 
         <span class="hamburger-inner">button</span>
    </span>
  </button>

  <div class="overlay">
    some list elements go here
  </div>
</nav>

【讨论】:

  • 我试过这个,但覆盖变成了包含在网格中并失去了全屏 100% 宽度/高度的能力:(
  • @samsos 我可以帮助你的唯一方法是在 jsfiddle 或 codepen 上使用您的实际代码提供一个真实示例
  • 我添加了一个 Codepen
  • 解决的问题是 is-active 类也在覆盖层上......只是让选择器更具体,如 button.is-active 并分配 z-index 工作。 @samsos codepen.io/anon/pen/gMpbdQ ...如果这有助于将其标记为已解决
  • 我想这行得通。知道我如何让徽标覆盖并将颜色更改为白色以及“x”图标吗?
猜你喜欢
  • 1970-01-01
  • 2018-03-25
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多