gpt4 book ai didi

html - 如何在使用页面 anchor 导航时将 "activate"类设置为在 Angular 2 中 Bootstrap 导航栏?

转载 作者:行者123 更新时间:2023-11-28 00:58:01 27 4
gpt4 key购买 nike

我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站。

我创建了一个始终位于页面顶部的导航栏组件,并且我正在使用页面 anchor 导航 (#id)。请注意,我还没有创建路由模块(到目前为止还没有必要这样做)。

导航条代码如下:

<nav class="navbar navbar-default fixed-top navbar-inverse navbar-toggleable-md">
<div class="container">

<div class="navbar-header">
<button class="navbar-toggler navbar-toggler-right btn btn-outline-secondary" (click)="isCollapsed = !isCollapsed" [attr.aria-expanded]="!isCollapsed" aria-controls="collapseExample">
<i class="fa fa-bars" aria-hidden="true"></i>
</button>
<a class="navbar-brand" href="index.html">Garatéa</a>
</div>

<div id="collapseExample" class="navbar-collapse collapse" [ngbCollapse]="isCollapsed">
<ul class="nav navbar-nav ml-auto">
<li class="nav-item"><a class="nav-link" href="#home">Início</a></li>
<li class="nav-item"><a class="nav-link" href="#about">Sobre</a></li>
<li class="nav-item"><a class="nav-link" href="#team">Quem Somos</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contato</a></li>
</ul>
</div>
</div>
</nav>

每个链接对应单页网站的一个版 block ,例如首页组件模板为:

<div id="home" class="text-center home-background">
<div class="overlay">
<div class="content">
<h1>Bem vindo à <strong><span class="title-text">Garatéa</span></strong></h1>
<p class="lead">Somos uma inciativa que <strong>aumenta a taxa de sobrevivência</strong> em emergências médicas.</p>
</div>
</div>
</div>

我的问题是:如何突出显示导航栏中与我当前正在浏览的网站部分相对应的链接?例如,如果我正在查看有关部分的团队,我希望有一个 active。导航栏上的 CSS 类:<li class="nav-item active"><a class="nav-link" href="#about">Sobre</a></li> .

最佳答案

您可以在单击 <a> 时使用 srcElement标记如下

<a class="nav-link" (click)="clickedLink($event)">Início</a>
<a class="nav-link" (click)="clickedLink($event)">Início</a>
<a class="nav-link" (click)="clickedLink($event)">Início</a>

方法如下

clickedLink(e){
let element = e.srcElement;

console.log(e)
for(let i =0; i <element.parentElement.children.length ; i++){
if(element.parentElement.children[i].classList.contains('active')){
element.parentElement.children[i].classList.remove('active')
}
}
element.classList.add('active');

LIVE DEMO

关于html - 如何在使用页面 anchor 导航时将 "activate"类设置为在 Angular 2 中 Bootstrap 导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43792866/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com