首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动菜单背景

移动菜单背景
EN

Stack Overflow用户
提问于 2017-10-31 17:47:13
回答 2查看 111关注 0票数 1

我有一个菜单,如下所示,我不希望灰色背景出现在汉堡包按钮后面,而是希望它出现在下面,我不希望它显示在所有一旦它没有被点击。我不知道在我的代码中在哪里编辑它,我已经尝试了所有的方法。

我的菜单按钮的背景

单击菜单时

HTML

代码语言:javascript
复制
<div class="menu">
<div class="hamburger-menu-wrapper">
<button class="hamburger-menu">
<span>toggle menu</span>
</button>
</div>
<div class="menu-list">
<div class="menu-list">
<a href="#About">About us</a><br>
<a href="#Services">Services</a><br>
<a href="#Clients">Clients</a><br>
<a href="#Contact">Contact us</a><br>
</div>    

CSS

代码语言:javascript
复制
html, body 
{
 margin: 0;
 padding: 0;
 width: 100%;
 height: 100%;
 margin: 0px;
 padding: 0px;
 overflow-x: hidden; 
}

.hamburger-menu-wrapper 
{
  margin-top: 0px;
  margin-bottom: 0px;
  background: #323232;
  padding: 10px;
  display: inline-block;
  z-index: 999 !important;
  position: static;
 }

.hamburger-menu-wrapper.bounce-effect 
{ 
  animation: bounce 0.3s ease 1; 
 }

.hamburger-menu  
 {
  border: 0;
  margin: 0 auto;
  display: block;
  position: relative;
  padding: 0;
  width: 36px;
  height: 36px;
  font-size: 0;
  text-indent: -9999px;
  cursor: pointer;
  z-index: 999 !important;
  cursor: pointer;
  background: transparent;
 }

.hamburger-menu:focus 
{ 
  outline: none; 
 }

.hamburger-menu span 
{
  display: block;
  position: absolute;
  top: 17px;
  left: 5px;
  right: 5px;
  height: 2px;
  background: #02D5FD;
}

.hamburger-menu span:before, .hamburger-menu span:after 
{
  position: absolute;
  display: block;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #02D5FD;
  content: "";
}

.hamburger-menu span:before 
{ 
 top: -7px; 
}

.hamburger-menu span:after 
{  
 bottom: -7px; 
}

.hamburger-menu span:before, .hamburger-menu span:after 
{
 transition-duration: 0.3s, 0.3s;
 transition-delay: 0.3s, 0s;
}

.hamburger-menu span:before 
{ 
  transition-property: top, transform;
  }

.hamburger-menu span::after 
 { 
    transition-property: bottom, transform; 
    }

.hamburger-menu.active span  
 { 
  background: none; 
}

.hamburger-menu.active span:before
 {
 top: 0;
 transform: rotate(225deg);
 }

.hamburger-menu.active span:after 
{
  bottom: 0;
  transform: rotate(135deg);
 }

.hamburger-menu.active span:before, .hamburger-menu.active span:after 
{ 
transition-delay: 0s, 0.3s; 
}

@-webkit-keyframes bounce
{ 
  0% {transform: rotate(0);}
  45% {transform: rotate(15deg);}
  90% {transform: rotate(-7deg);}
  100% {transform: rotate(0);}
 }

.menu 
{
 position: fixed;
 width: 100%;
 margin-top: 0px;
 padding: 0px;
 margin-bottom: 10px;
 text-align: center;
 background-color: #818184;
 opacity: 0.9;
 }

.menu-list 
 {
  position: relative;
  display: none;
  width: 100%;
  text-align: center;
  z-index: 999;
  margin-top: 0px;
  margin-right: auto;
  margin-bottom: 0px;
  margin-left: auto;
}

.menu-list a
 {
 color: #C6D2D6;
 text-decoration: none;
 font-size: 18px;
 display: inline-block;
 margin: 15px 0;
 transition: all 0.5s ease;
 z-index:999 ;
}

.menu-list a:hover
 { 
 color: #02D5FD; 
 }

 .menu-overlay 
 {
  transition: margin 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 999 !important;
  }

JQuery

代码语言:javascript
复制
(function()
{
      'use strict';
      $('.hamburger-menu').click(function (e) {
      e.preventDefault();
      if ($(this).hasClass('active')){
      $(this).removeClass('active');
      $('.menu-overlay').fadeToggle( 'fast', 'linear' );
      $('.menu .menu-list').slideToggle( 'slow', 'swing' );
      $('.hamburger-menu-wrapper').toggleClass('bounce-effect');
      } else {
      $(this).addClass('active');
      $('.menu-overlay').fadeToggle( 'fast', 'linear' );
      $('.menu .menu-list').slideToggle( 'slow', 'swing' );
      $('.hamburger-menu-wrapper').toggleClass('bounce-effect');
      }
      })
      })();

我不确定我哪里出错了,其他的一切都很完美,它是移动响应的,按钮也工作得很好。我只是需要帮助的灰色背景,如果有人可以帮助我。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-10-31 18:15:11

I‘我不清楚你的Question.Upto我的知识,我想这是你所期望的。您可以使用add remove类来隐藏显示背景颜色。http://jsfiddle.net/w9ew0nrw/11/

在代码中添加css

代码语言:javascript
复制
.showback {
   background-color: #818184;
   transition:all 0.3s ease 0s;
}

并添加js

代码语言:javascript
复制
(function()
{
    'use strict';
     $('.hamburger-menu').click(function (e) {
          e.preventDefault();
          if ($(this).hasClass('active')) {
              $(".menu").removeClass('showback');
              $(this).removeClass('active');
              $('.menu-overlay').fadeToggle( 'fast', 'linear' );
              $('.menu .menu-list').slideToggle( 'slow', 'swing' );
              $('.hamburger-menu-wrapper').toggleClass('bounce-effect');
          } else {
              $(this).addClass('active');
              $(".menu").addClass('showback');
              $('.menu-overlay').fadeToggle( 'fast', 'linear' );
              $('.menu .menu-list').slideToggle( 'slow', 'swing' );
              $('.hamburger-menu-wrapper').toggleClass('bounce-effect');
         }
      });
})();
票数 1
EN

Stack Overflow用户

发布于 2017-10-31 23:02:26

我真的不明白你问的问题,这就是我想出来的…

我看到在你的css中有一个决定覆盖颜色的rgba()代码,把最后一个数字改成1来去除不透明度。

代码语言:javascript
复制
 .menu-overlay 
 {
  transition: margin 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
  display: none;
  position: fixed;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background: rgba(0, 0, 0, 1);
  z-index: 999 !important;
  }

我希望这对你有帮助,让我知道。

-MultiDutch

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

https://stackoverflow.com/questions/47032256

复制
相关文章

相似问题

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