Android 移动菜单在滚动时自动关闭-如何永久隐藏或保留地址栏?

Android 移动菜单在滚动时自动关闭-如何永久隐藏或保留地址栏?,android,jquery,ios,mobile,menu,Android,Jquery,Ios,Mobile,Menu,我一直在为我设计的一些网站设计一个响应菜单,但我遇到了一个问题。它的jQuery部分用于根据窗口宽度显示或隐藏菜单(以及隐藏/显示一个栏来切换它) 在移动浏览器中,当您滚动时,切换后的“打开”菜单将再次关闭——但只有当地址栏已被隐藏或通过向下或向上滚动显示时。这发生在Android和iOS上 我肯定把它缩小到地址栏的出现和消失,因为: 这只发生在移动浏览器上 当页面仍在加载时,地址栏不会消失(至少在Opera中是这样),因此当我在这种情况下滚动时,菜单不会关闭 如果在地址栏隐藏后滚动,菜单将不

我一直在为我设计的一些网站设计一个响应菜单,但我遇到了一个问题。它的jQuery部分用于根据窗口宽度显示或隐藏菜单(以及隐藏/显示一个栏来切换它)

在移动浏览器中,当您滚动时,切换后的“打开”菜单将再次关闭——但只有当地址栏已被隐藏或通过向下或向上滚动显示时。这发生在Android和iOS上

我肯定把它缩小到地址栏的出现和消失,因为:

  • 这只发生在移动浏览器上
  • 当页面仍在加载时,地址栏不会消失(至少在Opera中是这样),因此当我在这种情况下滚动时,菜单不会关闭
  • 如果在地址栏隐藏后滚动,菜单将不会关闭
然而,我不知道该怎么做来修复它;地址栏会影响窗口/页面的高度,而不是宽度,因此我不确定上下滚动时菜单为什么会切换。 对于我来说,这个方法是最简单的方法,可以根据当前的设置创建一个响应菜单

以下是我正在使用的代码的相关部分:

    var winwidth = $(window).width();
    $(window).resize(function() {
        var newwinwidth = $(window).width();
        if(winwidth = newwinwidth && newwinwidth <= 768) {
            // if smaller or equal
            $('.menu ul').hide();
        } else {
            // if larger
            $('.menu ul').show();
        }
    }).resize();
var winwidth=$(窗口).width();
$(窗口)。调整大小(函数(){
var newwinwidth=$(窗口).width();

如果(winwidth=newwinwidth&&newwinwidth我在自己的响应站点上工作时遇到了相同的问题。我无法发现问题的根本原因,但我开发了一个解决方法。我用来显示菜单的锚添加了一个“打开”切换类。我基本上使用了“window.onscroll”调用以检查用户每次滚动页面时是否应显示菜单,并在每次滚动后再次“显示”菜单

window.onscroll = function (e) {  
    var sidebar = $('#sidebar')
    var menu = $('#sidebar > ul');
    if(sidebar.hasClass('open'))
        {
            menu.show();
        }
    } 

希望这能有所帮助!

我在自己的响应网站上工作时也遇到了同样的问题。我无法找到问题的根本原因,但我找到了解决办法。我用来显示菜单的锚添加了一个“打开”切换类。我基本上使用了“window.onscroll”调用以检查用户每次滚动页面时是否应显示菜单,并在每次滚动后再次“显示”菜单

window.onscroll = function (e) {  
    var sidebar = $('#sidebar')
    var menu = $('#sidebar > ul');
    if(sidebar.hasClass('open'))
        {
            menu.show();
        }
    } 

希望这能有所帮助!

我在自己的响应网站上工作时也遇到了同样的问题。我无法找到问题的根本原因,但我找到了解决办法。我用来显示菜单的锚添加了一个“打开”切换类。我基本上使用了“window.onscroll”调用以检查用户每次滚动页面时是否应显示菜单,并在每次滚动后再次“显示”菜单

window.onscroll = function (e) {  
    var sidebar = $('#sidebar')
    var menu = $('#sidebar > ul');
    if(sidebar.hasClass('open'))
        {
            menu.show();
        }
    } 

希望这能有所帮助!

我在自己的响应网站上工作时也遇到了同样的问题。我无法找到问题的根本原因,但我找到了解决办法。我用来显示菜单的锚添加了一个“打开”切换类。我基本上使用了“window.onscroll”调用以检查用户每次滚动页面时是否应显示菜单,并在每次滚动后再次“显示”菜单

window.onscroll = function (e) {  
    var sidebar = $('#sidebar')
    var menu = $('#sidebar > ul');
    if(sidebar.hasClass('open'))
        {
            menu.show();
        }
    } 

希望这有帮助!

我也遇到过同样的问题。但我解决了这个问题。问题是,当滚动页面时,它会触发窗口的调整大小事件。当它检查窗口宽度时,它小于768px。因此菜单将被隐藏。有两种解决方案。第一种,你可以删除窗口调整大小功能n、 第二,在窗口大小调整功能中,您应该检查导航是否打开或关闭。根据这一点,您可以自定义隐藏和显示过程。这意味着,如果导航关闭且窗口宽度大于768px,您可以显示导航。

我也遇到过同样的问题。但我修复了解决方案。问题是s、 当滚动页面时,它会触发窗口的调整大小事件。当它检查窗口的宽度时,它小于768px。因此菜单将被隐藏。有两种解决方案。第一种,你可以删除窗口调整大小功能。第二种,在窗口调整大小功能内,你应该检查导航是否打开ned或closed。根据这一点,您可以自定义隐藏和显示过程。这意味着,如果导航关闭且窗口宽度大于768px,您可以显示导航。

我也遇到过同样的问题。但我修复了解决方案。问题是,当滚动页面时,它会触发窗口的调整大小事件。当它将勾选窗口宽度小于768px。因此菜单将被隐藏。有两种解决方案。第一种,您可以删除窗口大小调整功能。第二种,在窗口大小调整功能内,您应该检查导航是否打开或关闭。根据这一点,您可以自定义隐藏和显示过程。这意味着,如果导航关闭,窗口宽度大于768px,您可以显示导航。

我也遇到过同样的问题。但我解决了这个问题。问题是,当滚动页面时,有时会触发窗口的调整大小事件。当它检查窗口宽度时,它小于768px。因此菜单将被隐藏。有两个解决方案解决方法。第一,您可以删除窗口大小调整功能。第二,在窗口大小调整功能中,您应该检查导航是否打开或关闭。根据这一点,您可以自定义隐藏和显示过程。这意味着,如果导航关闭且窗口宽度大于768px,您可以显示导航。

I同样面临同样的问题,无论我如何处理resize()函数匹配dom的高度或宽度,该函数仍在移动设备上触发,因此我尝试使用$(window)。在(“方向更改”,function()上,问题得到了解决。

我也面临同样的问题,无论我如何处理resize())函数匹配仍在mo上触发的dom的高度或宽度