首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单击菜单按钮时进行全屏覆盖

如何在单击菜单按钮时进行全屏覆盖
EN

Stack Overflow用户
提问于 2016-04-08 22:36:34
回答 1查看 2.3K关注 0票数 1

我有一个菜单按钮,当我点击它时,我想要触发一个全屏幕的导航覆盖。然后,当再次单击该按钮时,我希望它消失。

正如你所看到的,我已经设置了菜单按钮动画,我只是不知道如何添加和切换覆盖导航。

谢谢

http://codepen.io/anon/pen/PNEBVE

代码语言:javascript
复制
    <header class="container">
  <a id="hamburger-icon" href="#" title="Menu">
      <span class="line line-1"></span>
      <span class="line line-2"></span>
      <span class="line line-3"></span>
  </a>

  <div class="main">
    <h1>Page content</h1>
  </div>
</header>
EN

回答 1

Stack Overflow用户

发布于 2016-04-08 22:48:14

您可以尝试向nav元素添加一个简单的toggle()

在这两个示例中,您只需在.hamburger-icon之前添加一个<nav></nav>

你可以在这里看到一个简单的例子,toggle()只是将displaynone切换到block,这并不奇怪:

http://codepen.io/sonnyprince/pen/aNEjgv

JS

代码语言:javascript
复制
$( document ).ready(function() {
  var hamburger = $('#hamburger-icon');
  var nav = $('nav');
  hamburger.click(function() {
    nav.toggle();
     hamburger.toggleClass('active');
     return false;
  });
});

和CSS

代码语言:javascript
复制
nav {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;
  background: red;
  position: fixed;
}

就我个人而言,如果你也喜欢nav上的动画,我会在导航上切换一个类,只要你有一个0max-height在它的初始状态,你可以给它一点不透明度淡入或给它一点滑动-当它切换到时,带有顶部偏移的效果。

http://codepen.io/sonnyprince/pen/vGpaoZ

JS

代码语言:javascript
复制
$( document ).ready(function() {
  var hamburger = $('#hamburger-icon');
  var nav = $('nav');
  hamburger.click(function() {
    nav.toggleClass('shown');
     hamburger.toggleClass('active');
     return false;
  });
});

和CSS

代码语言:javascript
复制
nav {
  top: -50px;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: red;
  position: fixed;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: all 0.2s;
}
nav.shown {
  top: 0;
  opacity: 1;
  max-height: none
}

为了停止正文滚动,我通常会在noScrollbodyhtml上切换一个类。下面是CSS的一个示例:

代码语言:javascript
复制
html.noScroll, body.noScroll {
    max-height: 100%;
    overflow: hidden;
}

而JS将包含:

代码语言:javascript
复制
$('body, html').toggleClass('noScroll');

显然,您可以使用汉堡图标和导航将$('body, html')添加到您已有的变量中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36502397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档