簡體   English   中英

我希望我的菜單圖標與漢堡菜單重疊

[英]I want my menu icon to overlap the hamburger menu

我的網站上有這個菜單圖標...

菜單圖標

單擊該按鈕將打開此sidenav菜單...

Sidenav

但是我不想使用那個俗氣的“ x”來關閉它,而是想使用相同的圖標來打開它,所以我想做的是彈出時讓它與sidenav重疊,而不是sidenav與圖標重疊,但是我只是找不到答案。

 /* General */ body{ background-color: #555; margin: 0; padding: 0; } img{ max-width: 100%; height: auto; width: auto; } @font-face{ font-family: selfish; src: url(assets/SELFISH_.TTF); } a { font-family: selfish; } /* Header */ #main #header { position: fixed; background-color: #333; width: 100%; margin: 0; padding: 0; vertical-align: top; /*height: 105px;*/ /*height: 15%;*/ /*box-shadow: 10px 0px 5px black;*/ } #main #header .header-logo{ padding-bottom: 10px; position: relative; display: block; margin-right: 50%; margin-left: 40%;; float: left; } /*header menu icon*/ #main #header .menu-icon div{ width: 30px; height: 3px; background-color: white; margin: 6px 0; } #main #header .menu-icon{ margin-left: auto; margin-right: 20px; margin-top: 20px; display: block; width: 30px; height: 36px; position: relative; cursor: pointer; } /* Side navigation */ .sidenav { height: 100%; width: 0; position: relative; z-index: 12; top: 0; float: right; margin-left: auto; margin-right: 0; background-color: #111; overflow-x: hidden; transition: 0.5s; padding-top: 60px; padding-bottom: 100%; display: block; } .sidenav a { padding: 8px 8px 8px 32px; text-decoration: none; font-size: 40px; color: white; display: block; transition: 0.3s } .sidenav a:hover, .offcanvas a:focus{ color: #A42626; } .closebtn { position: absolute; top: 0; right: 25px; font-size: 60px !important; } @media screen and (max-height: 450px) { .sidenav {padding-top: 15px;} .sidenav a {font-size: 18px;} } 
 <body> <div id="mySidenav" class="sidenav"> <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">x</a> <a href="#">Home</a> <a href="#">Ballroom</a> <a href="#">Restaurant</a> <a href="#" style="margin-left: 35px; font-size: 25px;">Menu</a> <a href="#">Catering</a> <a href="#">Contact</a> </div> <div id="main"><!--Start main div_____________________________--> <!--Header--> <div id="header"> <img class="header-logo" src="images/header-logo_png_checkered-compressed-short.png"/> <div class="menu-icon" onclick="openNav()"> <div></div> <div></div> <div></div> </div> </div> </div> <!--End of main div______________________________--> <script> function openNav() { document.getElementById("mySidenav").style.width = "250px"; } function closeNav() { document.getElementById("mySidenav").style.width = "0"; } </script> </body> 

將菜單圖標從標題中斷開,以便可以在標題和圖標之間分層sidenav,然后僅將圖標固定在當前位置,並為其提供比side-nav更高的z索引(至少13) 。 最后,更新您的JS進行切換,而不只是打開。

var navOpen = false;

function toggleNav() {
  if (navOpen) {
    closeNav();
    navOpen = false;
  } else {
    openNav();
    navOpen = true;
  }
}

function openNav() {
  document.getElementById("mySidenav").style.width = "250px";
}

function closeNav() {
  document.getElementById("mySidenav").style.width = "0";
}

https://jsfiddle.net/pv9f2qwm/

查看小提琴以獲得完整的工作解決方案。

編輯:或者,如果您希望標題保留在側面導航上方,則可以保留HTML,而只需添加切換代碼並向標題添加13的z-index,就像下面的小提琴一樣: https: //jsfiddle.net/qv12nwe8/

妳去 https://jsfiddle.net/jwtf6fad/1/

使用標題中存在的相同代碼:)

.menu-icon div{
    width: 30px;
    height: 3px;
    background-color: white;
    margin: 6px 0;

    }
.menu-icon{
    margin-left: auto;
    margin-right: 20px;
    margin-top: 20px;
    display: block;
    width: 30px;
    height: 36px;

    position: relative;

    cursor: pointer;
}
#mySidenav .menu-icon{
  margin-top: 0;
  position: absolute;
  right: 0;
  top: 14px;
}

並重用那段代碼

<div class="menu-icon" onclick="closeNav()">
    <div></div>
    <div></div>
    <div></div>                
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM