简体   繁体   English

当我从菜单中单击链接标记时,如何使导航栏消失

[英]How to make navbar disappear when I click on link tag from menu

I have this navbar it works how I want it too but my main problem is I want the dropdown menu to disappear by clicking any links on the menu because I am not sure what to add to my current code to get it to behave as desired. 我有这个导航栏它的工作原理我也想要它但我的主要问题是我希望下拉菜单通过单击菜单上的任何链接消失,因为我不知道要添加到我当前的代码中以使其按照需要运行。 Thanks any help would be appreciated 谢谢任何帮助将不胜感激

<nav id="navbar">
    <div class="logo">
         <a href="#zero"><img src="log.png"></a>
    </div>

    <ul>
        <li><a href="#lowerSec" class="active">About</a></li>
  <li><a href="#container">Contact</a></li>
  <li><a href="#">Project</a></li>
  <li><a href="#">Home</a></li>

    </ul>
</nav>

Here is my JS 这是我的JS

It works fine I just one the additional feature that I mentioned on the title since I don't know how to do it 它工作正常我只是一个我在标题上提到的附加功能,因为我不知道该怎么做

    <script type="text/javascript">

    $(window).on('scroll', function()
   {

    if($(window).scrollTop())
   {
     $('nav').addClass('black');
    }

   else
   {
     $('nav').removeClass('black');
   }
   }
   )

   $(document).ready(function() {
   $(".menu").on("click", function() {
   $("nav ul").toggleClass("active");
   });
  })

A CSS styling may be a potential solution. CSS样式可能是一种潜在的解决方案。 all tags are displayed as blocks so in your CSS file add 所有标签都显示为块,因此在CSS文件中添加

    .makeDisappear{
    display:none
    }

Although, I do recommend renaming your id for your navbar something a bit more unique. 虽然,我建议您为导航栏重命名一些更独特的内容。

so example jQuery would be: 例如jQuery将是:

$("a").on("click",function(){
document.getElementById("navbar").classList.add("makeDisappear");

//or simply $("#navbar").addClass("makeDisappear")
})

to make your nav bar reappear change display:none to display:block 使导航栏重新出现更改display:none to display:block

Just add the nav ul li a to your click function. 只需将nav ul li a添加到您的点击功能即可。 Since I don't know what your markup looks like here is a quick demo: 由于我不知道您的标记是什么样的,因此这是一个快速演示:

 $(".menu, nav ul li a").on("click", function(e) { e.preventDefault(); $("nav ul").toggleClass("active"); }); 
 ul{ display:none; } ul.active{ display:block; } 
 <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script> <nav> <button class="menu"> Menu </button> <ul> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> </ul> </nav> 

With jquery you can comma separate selectors. 使用jquery,您可以使用逗号分隔选择器。 Since you already have the functionality to toggle the active class just add the nav ul li a to your existing function. 由于您已具备切换活动类的功能,因此只需将nav ul li a添加到现有功能即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM