bootstrap 导航栏下拉菜单不适用于 iphone
bootstrap navbar dropdown does not work on iphone
我在 mean.js 框架内使用 "bootstrap": "~3.3.4"。当在桌面上单击下拉图标时,导航栏下拉菜单打开和保持不动没有任何问题。但是在被推送到登台服务器后,单击 iphone 和 samsung galaxy 浏览器上的图标不再打开下拉菜单,或者它有时会打开但不会保持打开状态。
代码如下:
<div class="landing-page-header">
<div class="navbar-header" >
<button class="navbar-toggle mytoggle" type="button" data-ng-click="toggleCollapsibleMenu()">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a data-ui-sref="home" class="navbar-brand">
<img class="header-logo" ng-src="modules/core/img/home/myimg.png" height="">
</a>
</div>
<nav class="collapse navbar-collapse" data-ng-show="!authentication.user" collapse="!isCollapsed" role="navigation">
<ul class="nav navbar-nav navbar-right landing-page-nav" data-ng-hide="authentication.user">
<li class="text-center" data-ng-repeat="item in menu.items | orderBy: 'position'"
data-ng-if="item.roles.indexOf('guest') !== -1"
ng-switch="item.type"
data-ng-class="{active: $state.includes(item.state)}"
class="{{item.class}}"
target="{{item.target}}"
dropdown="item.type === 'dropdown'">
<a ng-switch-when="dropdown" class="dropdown-toggle">
<span data-ng-bind="item.title"></span>
<b class="caret"></b>
</a>
<ul ng-switch-when="dropdown" class="dropdown-menu">
<li data-ng-repeat="subitem in item.items | orderBy: 'position'" data-ng-if="subitem.shouldRender(authentication.user);" data-ui-sref-active="active">
<a data-ui-sref="{{subitem.state}}" data-ng-bind="subitem.title"></a>
</li>
</ul>
<a ng-switch-default data-ui-sref="{{item.state}}" data-ng-bind="item.title"></a>
</li>
<li class="divider-vertical"></li>
<li class="text-center " data-ui-sref-active="active">
<a data-ui-sref="authentication.signin" target="_self">SIGN IN</a>
</li>
</ul>
</nav>
</div>
这是 CSS:
.landing-page-header {
position: fixed;
left: 0px;
top: 0px;
opacity: 0.9;
background: #111;
width:100%;
height: 5em;
z-index: 99;
margin-bottom: 10em;
}
.navbar-brand img {
/*background: #fff;*/
}
.landing-page-header ul {
background: #111;
margin-right:0.5em;
}
我查看了该网站上的其他答案并用谷歌搜索了这个问题。我遇到的一个答案建议使用 a 或 input 而不是按钮,但我仍然面临同样的问题。
浏览器中发生的事情是,在代码被推送到登台服务器后立即单击按钮(汉堡包)(在 galaxy 和 iphone)导航栏呈现,但是一旦菜单项是单击后,当您返回并再次单击汉堡菜单时,导航栏会表现得很奇怪,开始呈现并停止并立即返回。
有人知道吗?
我自己找到了解决办法。对于小于 480 像素的屏幕,我只需要将下拉菜单的位置设置为 "static"。
@media (max-width: 480px) {
.landing-page-header ul{
position: static;
width:100%;
}
}
我在 mean.js 框架内使用 "bootstrap": "~3.3.4"。当在桌面上单击下拉图标时,导航栏下拉菜单打开和保持不动没有任何问题。但是在被推送到登台服务器后,单击 iphone 和 samsung galaxy 浏览器上的图标不再打开下拉菜单,或者它有时会打开但不会保持打开状态。
代码如下:
<div class="landing-page-header">
<div class="navbar-header" >
<button class="navbar-toggle mytoggle" type="button" data-ng-click="toggleCollapsibleMenu()">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a data-ui-sref="home" class="navbar-brand">
<img class="header-logo" ng-src="modules/core/img/home/myimg.png" height="">
</a>
</div>
<nav class="collapse navbar-collapse" data-ng-show="!authentication.user" collapse="!isCollapsed" role="navigation">
<ul class="nav navbar-nav navbar-right landing-page-nav" data-ng-hide="authentication.user">
<li class="text-center" data-ng-repeat="item in menu.items | orderBy: 'position'"
data-ng-if="item.roles.indexOf('guest') !== -1"
ng-switch="item.type"
data-ng-class="{active: $state.includes(item.state)}"
class="{{item.class}}"
target="{{item.target}}"
dropdown="item.type === 'dropdown'">
<a ng-switch-when="dropdown" class="dropdown-toggle">
<span data-ng-bind="item.title"></span>
<b class="caret"></b>
</a>
<ul ng-switch-when="dropdown" class="dropdown-menu">
<li data-ng-repeat="subitem in item.items | orderBy: 'position'" data-ng-if="subitem.shouldRender(authentication.user);" data-ui-sref-active="active">
<a data-ui-sref="{{subitem.state}}" data-ng-bind="subitem.title"></a>
</li>
</ul>
<a ng-switch-default data-ui-sref="{{item.state}}" data-ng-bind="item.title"></a>
</li>
<li class="divider-vertical"></li>
<li class="text-center " data-ui-sref-active="active">
<a data-ui-sref="authentication.signin" target="_self">SIGN IN</a>
</li>
</ul>
</nav>
</div>
这是 CSS:
.landing-page-header {
position: fixed;
left: 0px;
top: 0px;
opacity: 0.9;
background: #111;
width:100%;
height: 5em;
z-index: 99;
margin-bottom: 10em;
}
.navbar-brand img {
/*background: #fff;*/
}
.landing-page-header ul {
background: #111;
margin-right:0.5em;
}
我查看了该网站上的其他答案并用谷歌搜索了这个问题。我遇到的一个答案建议使用 a 或 input 而不是按钮,但我仍然面临同样的问题。
浏览器中发生的事情是,在代码被推送到登台服务器后立即单击按钮(汉堡包)(在 galaxy 和 iphone)导航栏呈现,但是一旦菜单项是单击后,当您返回并再次单击汉堡菜单时,导航栏会表现得很奇怪,开始呈现并停止并立即返回。
有人知道吗?
我自己找到了解决办法。对于小于 480 像素的屏幕,我只需要将下拉菜单的位置设置为 "static"。
@media (max-width: 480px) {
.landing-page-header ul{
position: static;
width:100%;
}
}