【问题标题】:How to close responsive menu, click outside of nav如何关闭响应式菜单,单击导航外部
【发布时间】:2015-11-11 21:58:41
【问题描述】:

您好,我的问题是我有一个菜单,一个带有引导程序的响应式菜单我想在桌面上的响应式视图上关闭菜单它很好但是在响应式视图上我希望当我在任何区域的导航菜单之外单击它应该关闭,我的导航代码如下

<!-- Navigation -->

<nav id="navigation-sticky" class="white-nav b-shadow">

    <!-- Navigation Inner -->

    <div class="nav-inner">

        <div class="logo">

            <!-- Navigation Logo Link -->

            <a href="#home" class="scroll">

                <!-- Your Logo -->

                <img src="" class="site_logo" alt=""/><br>

               </a>

        </div>

        <!-- Mobile Menu Button -->

        <a  class="mobile-nav-button colored"><i class="fa fa-bars"></i></a>

        <!-- Navigation Menu -->

        <div class="nav-menu clearfix ">

            <ul class="nav uppercase oswald">

                <li><a href="#home" class="scroll">home</a></li>

                <li class="dropdown-toggle nav-toggle" ><span href="#about" class="scroll">About App<b data-toggle="dropdown"></b></span>

                    <!-- DropDown Menu -->

                    <ul class="dropdown-menu uppercase gray-border clearfix">                       

                        <li><a href="#works" class="scroll">HOW DOES IT WORK?</a></li>
                        <li><a href="#features" class="scroll">Features</a></li>                        
                        <li><a href="#what-we-do" class="scroll">APP FLOW</a></li>
                        <li><a href="#faq" class="scroll">F.A.Q</a></li>

                    </ul>

                    <!-- End DropDown Menu -->

                </li>



                <li><a href="#portfolio" class="scroll">Service Types</a></li>

                <li><a href="#skills" class="scroll">Cities</a></li>

                <li><a href="#prices" class="scroll">Rates</a>

                </li>

                <li><a href="#download" class="scroll">Download</a></li>



                <li class="dropdown-toggle nav-toggle" ><span aria-expanded="false" aria-haspopup="true" role="button" data-toggle="dropdown" class="dropdown-toggle scroll">Become a Driver</span>

                    <!-- DropDown Menu -->

                    <ul class="dropdown-menu uppercase gray-border clearfix">                       

                        <li><a href="#" class="scroll">Signup</a></li>
                        <li><a href="#" class="scroll">Flyer</a></li>                       


                    </ul>

                    <!-- End DropDown Menu -->

                </li>

                                    <li><a href="#" class="scroll">login</a></li>

                <li><a href="#contact" class="scroll">contact</a></li>

            </ul>

        </div><!-- End Navigation Menu -->

    </div><!-- End Navigation Inner -->

</nav><!-- End Navigation -->

我使用此脚本关闭菜单它关闭菜单但菜单通过双击而不是单击打开

$('html').click(function() {
 $('#menu').hide(); 
});

【问题讨论】:

  • 你能在这里在 sn-p 中创建一个类似的演示吗?
  • 它使用了许多其他脚本 lil 有点难以显示 sn-p,我可以给你我的网站链接吗?
  • 当然,它也会有所帮助。
  • Here 是一个类似的问题。你可以检查它(y)

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:

我认为这可能对你有用:

$(document).mouseup(function (e)
{
    var container = $(".nav-menu");

    if (!container.is(e.target) // if the target of the click isn't the container...
        && container.has(e.target).length === 0) // ... nor a descendant of the container
    {
        container.css("display","none");
    }
}); 

更新:试试这个

var container = $(".nav-inner div.nav-menu, .mobile-nav-button");

    if (!container.is(e.target) // if the target of the click isn't the container...
        && container.has(e.target).length === 0) // ... nor a descendant of the container
    {
        $(".nav-inner div.nav-menu").slideUp();
    }

【讨论】:

  • 您的菜单隐藏代码在 chrome 响应视图上不起作用,在 android 或 ios 设备上是否可以,实际上目前我的两个设备都已损坏,所以我无法检查设备
  • 在我给出代码之前它工作正常吗?我说的是成为司机
  • 您能否将代码实时发布在您的网络上,以便我查看。
  • 不,我的意思是您的菜单隐藏代码,它在 Firefox 响应式视图上隐藏菜单,但在 chrome 响应式上不会像以前的代码那样隐藏菜单
  • 你能更新你的网站吗?用我给的代码。
【解决方案2】:

我想这就是你要找的:

$('html').click(function() {
//Hide the menus if visible
});

$('#menucontainer').click(function(event){
    event.stopPropagation();
});

【讨论】:

  • 这里的潜在问题是可能会停止您仍然希望在菜单容器中发生的事件......对吗?这就是我正在发生的事情。
【解决方案3】:

试试这个:

$( "#menu" ).toggle( "slide" );

【讨论】:

    猜你喜欢
    • 2020-10-27
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2016-02-22
    相关资源
    最近更新 更多