【问题标题】:How to get navigation menu toggle to start closed using Jquery如何使用 Jquery 让导航菜单切换开始关闭
【发布时间】:2014-10-03 10:01:10
【问题描述】:

我已经使用 jQuery 构建了自己的响应式导航菜单,并且它在一定程度上可以工作,我遇到的问题是,在移动屏幕上查看它时,菜单总是开始打开。除了这个问题之外,切换功能和导航都可以正常工作。

这里是网站的链接http://www.visuallycreative.co.uk

如果您将浏览器窗口缩小到移动大小然后刷新浏览器,菜单开始打开,我需要它开始关闭,然后在切换时打开。

jQuery

$(document).ready(function() {
    $(window).on('resize', function() {
        if ($(window).width() <= 640) {
            $('.navbar').hide();
        } else {
            $('.navbar').show();
        }
    });
    $('.toggle').on('click', function() {
        $('.navbar').slideToggle('slow');
    });
}); 

【问题讨论】:

    标签: jquery navigation slidetoggle


    【解决方案1】:

    见下文,我没有添加.hide(),而是触发了resize 事件,所以它只会像你问的那样隐藏在移动设备上......基本上我是在告诉窗口假装它已经调整大小当文档准备好后,.on("resize") 中的任何代码都将被执行:)

    $(document).ready(function() {
    
      $(window).on('resize', function() {
         if ($(window).width() <= 640 ) {
            $('.navbar').hide();
         }   else {
            $('.navbar').show();
         }
      }).trigger("resize");
    
      $('.toggle').on('click', function() {
         $('.navbar').slideToggle('slow');
      });
    
    });
    

    【讨论】:

    • 不,不起作用!,菜单仍然展开,在浏览器刷新时显示所有菜单项。
    • 对不起,它确实有效:jsfiddle.net/dd9azku9 ...我还在您自己的网站上编辑了您的代码以添加.trigger("resize"),它也在那里工作...那个 JS Fiddle,你可以将 result 框调整为 > 640px,然后按 "play" 来查看它的实际效果。 :)
    【解决方案2】:

    只需添加$('.navbar').hide(); 作为第一行。您只是告诉窗口在调整大小时执行这些操作,并且最初加载的页面不是调整大小。所以,第一行应该是隐藏导航栏。

    【讨论】:

    • 不是严格正确的答案;因为它也会在&gt; 640px 上隐藏.navbar,这似乎是不可取的:)
    猜你喜欢
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    相关资源
    最近更新 更多