【问题标题】:Angular 2 Responsive Header - Expand/toggle button not working in mobile viewAngular 2 Responsive Header - 展开/切换按钮在移动视图中不起作用
【发布时间】:2017-01-19 19:13:34
【问题描述】:

切换按钮出现在移动视图中,但不可点击。在角度appDropdown 用于定义下拉按钮。是否有类似的方法来修复切换按钮?

很遗憾,我无法在此处显示图像,但“管理”下拉按钮还有另一个问题。当我将鼠标悬停在内部<li>(例如“注册”...)上时,它的颜色变为灰色。

添加href= "#" 会删除不需要的颜色变化,但点击时会刷新整个页面。

这是 HTML:

<nav class="navbar navbar-webmaster">
<div class="container">
    <div class="navbar-header">
        <button type="button" appDropdown class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" [routerLink]="['/']">Title</a>
    </div>

    <div class="collapse navbar-collapse" id="navbar">
        <ul class="nav navbar-nav navbar-right">
            <li class="active"><a href="#">Sublime<span class="sr-only"></span></a></li>
          <li class="dropdown" appDropdown *ngIf="userService.isAdmin">
      <a class="dropdown-toggle" role="button" aria-haspopup="true" aria-expanded="false">Administration <span class="caret"></span></a>
      <ul class="dropdown-menu">
        <li><a [routerLink]="['/register']">Registration</a></li>
        <li><a>Other Admin  Stuff</a></li>
        <li role="separator" class="divider"></li>
        <li><a>Another Admin Stuff</a></li>
      </ul>
    </li>
        </ul>
        <form class="navbar-form navbar-right search-form" role="search">
            <input type="text" class="form-control" placeholder="Search" />
        </form>
    </div>

</div>


CSS:

nav.navbar-webmaster {
  background: #00547E;
}

nav.navbar-webmaster a {
  color: #fff;
}

nav.navbar-brand :hover {
  color: #337ab7;
}

nav.navbar-webmaster ul.navbar-nav a:hover,
nav.navbar-webmaster ul.navbar-nav a:visited,
nav.navbar-webmaster ul.navbar-nav a:focus,
nav.navbar-webmaster ul.navbar-nav a:active {
  background: #0d3a51;
}

nav.navbar-webmaster ul.navbar-nav a:hover {
  border-color: #337ab7;
}

nav.navbar-webmaster li.divider {
  background: #ccc;
}

nav.navbar-webmaster button.navbar-toggle {
  background: #999;
  border-radius: 2px;
}

nav.navbar-webmaster button.navbar-toggle:hover {
  background: #999;
}

nav.navbar-webmaster button.navbar-toggle>span.icon-bar {
  background: #fff;
}

nav.navbar-webmaster ul.dropdown-menu {
  border: 0;
  background: #fff;
}

nav.navbar-webmaster ul.dropdown-menu>li>a {
  color: #444;
}

nav.navbar-webmaster ul.dropdown-menu>li>a:hover {
  background: #00547E;
  color: #fff;
}


非常感谢任何帮助。

【问题讨论】:

    标签: html css angular responsive-design responsive


    【解决方案1】:

    使用 ng-bootstrap 实现。更新html如下

    <nav class="navbar navbar-inverse">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" (click)="isCollapsed = !isCollapsed" [attr.aria-expanded]="!isCollapsed" aria-controls="myNavbar">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Logo</a>
        </div>
        <div class="collapse navbar-collapse" id="myNavbar" [ngbCollapse]="isCollapsed">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Projects</a></li>
            <li><a href="#">Contact</a></li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
          </ul>
        </div>
      </div>
    </nav>
    

    在组件类中声明下面的变量

    public isCollapsed = false;
    

    如需实拍,请访问我的Plunker

    【讨论】:

    • 谢谢。这正是我所需要的。
    • 我试过这个,但我得到“无法绑定到 'ngbCollapse',因为它不是 'div' 的已知属性。”
    • @BBaysinger ,您需要按照 valor-software.com//#/dropdowns 中的说明进行操作,提示您从 'ngx-bootstrap' 导入 { CollapseModule };甚至@NgModule({ imports: [CollapseModule.forRoot(),...] 除此之外 - 你应该使用 [collapse]="isCollapsed" 而不是 [ngbCollapse]="isCollapsed"
    • 它有效。但现在我有一个新问题。单击导航项后,使导航栏再次折叠需要什么。如果您单击导航项并在 SPA 中加载了新组件/页面,则导航栏保持展开状态。
    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 2016-11-20
    • 2011-12-18
    • 2021-08-06
    • 1970-01-01
    • 2012-03-22
    相关资源
    最近更新 更多