Angular Bootstrap 4 Navbar 不会切换和 navbar-dark 问题

Posted

技术标签:

【中文标题】Angular Bootstrap 4 Navbar 不会切换和 navbar-dark 问题【英文标题】:Angular Bootstrap 4 Navbar won't toggle and problems with navbar-dark 【发布时间】:2019-08-22 08:05:37 【问题描述】:

当我的屏幕宽度较小并且尝试单击汉堡包来切换导航时 - 没有任何反应。我已经尝试用已经提出的问题来解决问题,但我无法找到我的错误。 此外,一旦我删除navbar-dark,汉堡包就会消失-再次将此类添加到对象中,会将导航栏的颜色更改为白色,这是我不希望的。

<nav class="navbar navbar-dark navbar-expand-lg">
  <div class="container-fluid px-0">
    <div class="row w-100">
      <div class="col-2">
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
      </div>

      <div class="col-10">
        <div class="collapse justify-content-end navbar-collapse" id="navbarTogglerDemo03">
          <ul class="navbar-nav mt-2 mt-lg-0">
            <li class="nav-item active">
              <a class="nav-link" href="#">Home</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">About</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Portfolio</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Book Me</a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</nav>

Angular.json:

"styles": [
              "node_modules/bootstrap/dist/css/bootstrap.min.css",
              "src/styles.css",
              "node_modules/aos/dist/aos.css"
            ],
            "scripts": [
              "node_modules/popper.js/dist/popper.min.js",
              "node_modules/jquery/dist/jquery.min.js",
              "node_modules/bootstrap/dist/js/bootstrap.min.js"
            ],

Package.json:

"dependencies": 
    "@angular/animations": "^7.2.11",
    "@angular/cdk": "^7.3.6",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/fire": "^5.1.1",
    "@angular/forms": "~7.2.0",
    "@angular/material": "^7.3.6",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "aos": "^2.3.4",
    "bootstrap": "^4.3.1",
    "core-js": "^2.5.4",
    "firebase": "^5.8.5",
    "jquery": "^3.3.1",
    "ng-recaptcha": "^4.2.1",
    "popper.js": "^1.14.7",
    "rxjs": "~6.3.3",
    "tslib": "^1.9.0",
    "zone.js": "~0.8.26"
  ,

【问题讨论】:

首先将 bootstrap 安装到 Angular,如下所示:***.com/questions/50559810/… @לבנימלכה 添加导入 'bootstrap/dist/css/bootstrap.min.css';带来不会找到文件。当我在它前面添加 /node_modules 时,WebStorm 能够找到该文档,但 angular 说没有这样的文件。 请看我的回答 【参考方案1】:

你有几个问题:

    将引导程序安装到 Angular 6+ as here 将bg-dark 类添加到&lt;nav&gt; 使用此example 演示 Angular 中的引导行为

See here working code

HTML

<nav class="navbar navbar-dark bg-dark navbar-expand-lg">
  <div class="container-fluid px-0">
    <div class="row w-100">
      <div class="col-2">
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation" (click)="isShown = !isShown" >
          <span class="navbar-toggler-icon"></span>
        </button>
      </div>

      <div class="col-10">
        <div class="collapse justify-content-end navbar-collapse" [ngClass]=" 'show': isShown " id="navbarTogglerDemo03">
          <ul class="navbar-nav mt-2 mt-lg-0">
            <li class="nav-item active">
              <a class="nav-link" href="#" (click)="isShown = false" >Home</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#" (click)="isShown = false" >About</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#" (click)="isShown = false" >Portfolio</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#" (click)="isShown = false" >Book Me</a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</nav>

TS

isShown:boolean=false;

【讨论】:

谢谢!到目前为止,这有效。但是我可以在不使用 bg-dark 的情况下更改汉堡包吗,因为黑色背景不是我想要的。我更想要黑色的汉堡包,带有透明的导航背景。 所以删除navbar-dark bg-dark 我认为汉堡包现在是白底白字,如何更改汉堡包的颜色? 看这里:getbootstrap.com/docs/4.1/components/navbar/#color-schemes 谢谢。你能帮我做动画吗?现在移动导航只是在点击时弹出。我可以让它从顶部淡入淡出吗?

以上是关于Angular Bootstrap 4 Navbar 不会切换和 navbar-dark 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 angular-cli 和 ng-bootstrap 自定义 Bootstrap 4 SCSS 变量?

如何在 Angular 中使用带有 SASS 的 Bootstrap 4

导航栏下拉菜单不适用于 Angular 和 Bootstrap 4

无法在 Angular 的 Bootstrap 4 中切换导航栏

Angular4 CLI 项目中的 Bootstrap 4 Datatablejs

如何使用 Bootstrap 4 和 Angular 7 在导航栏中制作多级下拉菜单