Как сделать так, чтобы меню гамбургера закрывалось при щелчке по ссылке?
Итак, я часами искал в Интернете решение этой проблемы, я попробовал по крайней мере 20 различных вещей, и ни одна из них не сработала. Мне нужно знать, как сделать так, чтобы мое меню гамбургеров закрывалось при нажатии на ссылку внутри меню.
Мой HTML:
<!-- Hamburger Menu (for mobile) --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <div class="topnav" id="myTopnav" style="position:absolute;top:0px;"> <a href="#" class="active" class="nav-item" id="fn">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="#" class="nav-item">#</a> <a href="javascript:void(0);" class="icon" onclick="myFunction()"> </a> </div>
Мой CSS:
/* Makes Hamburger Heading Visible On Mobile Only */ .topnav .icon, #myTopnav, .active { visibility: visible; z-index: 10000; } /* Width Of Hamburger Navigation */ .topnav { width: 100%; } /* Removes Desktop Heading & Navigation */ .nav, .top-heading { display: none; } /* Header Color */ #fn { color: #ffffff; font-size: 32px; } /* Background And Overflow Of Hamburger Navigation */ .topnav { background: linear-gradient(to top, #ff6699 0%, #ff9999 100%); overflow: hidden; } /* Link Style Inside Hamburger Navigation */ .topnav a { float: left; display: block; color: #ffffff; text-align: center; padding: 26px 16px; text-decoration: none; font-family: 'Alegreya Sans SC', sans-serif; font-size: 28px; } /* Link Properties On Hover */ .topnav a:hover { background-color: #ffffff; color: black; } /* Active Highlight Of Current Page */ .active { background: linear-gradient(to top, #ff6699 0%, #ff9999 100%); color: #ffffff; } /* Closed Hamburger Properties */ .topnav a:not(:first-child) {display: none;} .topnav a.icon { float: right; display: block; } /* Open Hamburger Properties */ .topnav.responsive {position: relative;} .topnav.responsive a.icon { position: absolute; right: 0%; top: 0; } /* Open Link Properties */ .topnav.responsive a { float: none; display: block; text-align: left; } }
Мой Javascript (это то, что позволяет меню открываться, если есть способ для меня сохранить этот функционал, а также иметь возможность закрыть его при нажатии на ссылку было бы здорово):
function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "topnav") { x.className += " responsive"; } else { x.className = "topnav"; } }
Что я уже пробовал:
Я пробовал разные Javascript-коды, но ни один из них не работал с тем кодом, который у меня уже есть.
Mohibur Rashid
Что значит закрыть? Закрыть окно? Если да, то рассматривали ли вы возможность перенаправления