简体   繁体   English

Angular / Bootstrap-带有可切换侧栏的导航栏

[英]Angular/Bootstrap - Navbar with toggleable sidebar

Im trying to build a progressive web-app with Angular and Bootstrap. 我正在尝试使用Angular和Bootstrap构建一个渐进式Web应用程序。 The most challenging part is to implement a navbar that looks good on the web and on the mobile view. 最具挑战性的部分是实现一个导航栏,该导航栏在Web和移动视图上看起来都不错。 For the most part I'm pretty happy with my implementation so far. 到目前为止,我对自己的实现大部分都非常满意。 See Link on Stackblitz 请参阅Stackblitz上的链接

But now I am trying to toggle the navbar as a Sidebar, that opens up from the right to the left. 但是现在我试图将导航栏切换为侧边栏,从右向左打开。 Additionally the sidebar should push the content (Placeholder-Text) to the left. 另外,侧边栏应将内容(占位符文本)推到左侧。 This could be kind of tough, because that perhaps means modifying some Bootstrap classes. 这可能有点困难,因为这可能意味着修改某些Bootstrap类。 Maybe some of you have a solution for this. 也许有些人对此有解决方案。 Currently my navbar toggles the links underneath. 目前,我的导航栏切换了下面的链接。

html HTML

<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <ul class="navbar-nav">
    <li class="nav-item">
      <a class="navbar-brand d-none d-md-block" href="javascript:void(0)">
        <img alt="logo" src="https://..." width="40px" height="auto">
        My Brand
      </a>
    </li>
  </ul>

  <ul class="navbar-nav mr-auto mr-md-3">
    <li class="nav-item">
      <a class="nav-link font-weight-bold" href="javascript:void(0)">Stories</a>
    </li>
  </ul>

    <ul class="navbar-nav mr-auto mr-md-3">
      <li class="nav-item">
        <a class="nav-link" href="javascript:void(0)">
          <span>
            <img class="rounded" src="https://..." alt="user" width="35" height="35">
            <span class="d-none d-lg-inline">&nbsp; Tommy</span>
          </span>
        </a>
      </li>
    </ul>

    <ul class="navbar-nav mr-auto">
      <li class="nav-item">
        <a class="nav-link font-weight-bold" href="javascript:void(0)">
          <div class="img-container" (click)="notificationsViewed = true">
            <img alt="notifications" src="https://..." width="35">
            <span [hidden]="notificationsViewed" class="badge badge-danger notifications-count">{{3}}</span>
          </div>
        </a>
      </li>
    </ul>

  <button class="navbar-toggler" (click)="toggleNavbar()" type="button" [attr.aria-expanded]="!isCollapsed">
    <span class="icon-bar top-bar"></span>
    <span class="icon-bar middle-bar"></span>
    <span class="icon-bar bottom-bar"></span>
  </button>

  <div class="collapse navbar-collapse" [ngClass]="{ 'show': isCollapsed }">

    <ul class="navbar-nav float-right ml-auto">
      <li class="nav-item">
        <a class="nav-link font-weight-bold" href="javascript:void(0)">About Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link font-weight-bold"href="javascript:void(0)">Policy</a>
      </li>
      <li class="nav-item">
        <a class="nav-link font-weight-bold" href="javascript:void(0)">Contact</a>
      </li>
      <li class="nav-item">
        <button (click)="logout()" class="btn btn-bd-logout">
          Logout
        </button>
      </li>
    </ul>

  </div>
</nav>

Typescript 打字稿

  public isCollapsed: boolean = false;

  toggleNavbar() {
    this.isCollapsed = !this.isCollapsed;
  }

I didn't understand second part the sidebar should push the content (Placeholder-Text) to the left. 我不了解第二部分,侧边栏应该将内容(占位符文本)推到左侧。

But for the first part for Sidebar try using Angular Material Navigation Option : 但是对于补充工具栏的第一部分,请尝试使用Angular Material Navigation Option:

Angular Material Sidenav 角材料Sidenav

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM