汉堡菜单未在移动设备上显示

Posted

技术标签:

【中文标题】汉堡菜单未在移动设备上显示【英文标题】:Hamburger Menu not showing on mobile devices 【发布时间】:2021-01-01 19:14:19 【问题描述】:

我使用的是 bootstrap 3.4.x,由于某种原因,我的菜单在移动设备上不可见。我可以在浏览器中调整大小,一切都很好,但在设备上什么也看不到。查看端口在 head 标签中设置,jquery 在引导之前被加载。我这辈子都找不到问题。 ???下面是想要的结果(站点:site in question)

这是手机的样子:

Menu is missing

<!DOCTYPE html>
<html lang="en">  
<head><meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1" />
    
 </head>
<body>
<form runat="server">
    <asp:ScriptManager runat="server">
        <Scripts>
            <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="MsAjaxBundle" />
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="bootstrap" />
            <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
            <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
            <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
            <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
            <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
            <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
            <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
            <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
            <asp:ScriptReference Name="WebFormsBundle" />
            <%--Site Scripts--%>
        </Scripts>
    </asp:ScriptManager>


 <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#ham-menu">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" runat="server" href="~/">LOGO Here</a>
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav" id="ham-menu">
                    <li><a runat="server" href="~/">Home</a></li>
                    <li><a runat="server" href="~/Schedule">Schedule</a></li>
                    <li><a runat="server" href="~/Gallery">Gallery</a></li>
                    <li><a runat="server" href="~/About">About</a></li>
                    <li><a runat="server" href="~/Contact">Contact</a></li>
                </ul>
                <asp:LoginView runat="server" ViewStateMode="Disabled">
                    <AnonymousTemplate>
                        <ul class="nav navbar-nav navbar-right">
                            <li><a runat="server" href="~/Account/Register">Register</a></li>
                            <li><a runat="server" href="~/Account/Login">Log in</a></li>
                        </ul>
                    </AnonymousTemplate>
                    <LoggedInTemplate>
                        <ul class="nav navbar-nav navbar-right">
                            <li>
                                <a runat="server" href="~/Account/Manage" title="Manage your account">Hello, <%: Context.User.Identity.GetUserName()  %>!</a>

                            </li>
                            <li>
                                <asp:LoginStatus runat="server" LogoutAction="Redirect" LogoutText="Log off" LogoutPageUrl="~/" OnLoggingOut="Unnamed_LoggingOut" />
                            </li>
                        </ul>
                    </LoggedInTemplate>
                </asp:LoginView>
            </div>
        </div>
    </div>
</body>
</html>

【问题讨论】:

尽我所能调试,从“navbar-collapse collapse”中删除“collapse”可以帮助您在移动设备中获取菜单。希望它有所帮助:) @krishna_tandon 谢谢你,不幸的是,这并没有解决问题。 :( 你能用所需的输出更新相同的内容吗?也许这可以帮助我们深入研究这个问题。 @krishna_tandon 我已经更新了问题并添加了图片来反映 【参考方案1】:

我发现这篇文章有效。请务必注意底部的 Olorunfemi Ajibulu 评论。重新分级删除目的地的其他文件!

Disable aspnet.friendlyurl's mobile redirect for tablets

【讨论】:

【参考方案2】:

更新:我检查了您提供的相关网站链接。似乎一切都很好。现在您只需移动id="ham-menu" 属性即可。

所以,我将您的代码复制粘贴到引导程序 3.4.x 已正确初始化的页面上。原来你的 HTML 代码很好,只有一个问题:

将 id 属性从&lt;ul&gt; 移动到外部&lt;div&gt;

<div class="navbar-collapse collapse" id="ham-menu"><!--To Here-->
  <ul class="nav navbar-nav"><!--From Here-->
    <li><a runat="server" href="~/">Home</a></li>
    <li><a runat="server" href="~/Schedule">Schedule</a></li>
    <li><a runat="server" href="~/Gallery">Gallery</a></li>
    <li><a runat="server" href="~/About">About</a></li>
    <li><a runat="server" href="~/Contact">Contact</a></li>
  </ul>
</div>

现在,请确保您已正确初始化引导程序。要点:

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

【讨论】:

我已尝试移动 ID,但这对我也不起作用。我什至复制了上面的链接。手机上仍然没有菜单

以上是关于汉堡菜单未在移动设备上显示的主要内容,如果未能解决你的问题,请参考以下文章

我的 Bootstrap 菜单链接正在移动设备上运行

移动设备上的引导导航栏显示在其他所有内容的后面

字体真棒:一些图标未在移动设备上显示(iPhone iOS)

引导滑块未在 iphone 6、移动设备上显示工具提示

按钮未在 Google Nest 设备中显示,但在移动助理中正确显示

显示键盘时未在移动设备中触发提交事件