Angular 6 - добавить класс при встрече с разделом

Я хочу добавить класс .active к элементу, когда прокручиваю вниз до раздела. У меня есть два раздела, и я добавляю класс, активный по щелчку, а href = "#o-nas переводит меня на <section id = "o-nas">...</section>. Я хочу прокрутить страницу вниз и изменить активный класс в зависимости от позиции прокрутки.

Как я могу это сделать с Angular 6?

<nav class = "navbar navbar-expand-lg navbar-light bg-light">
  <div class = "container">
    <a class = "navbar-brand d-flex align-items-center" (click) = "goToTop()" routerLink = "/">
      <img src = "assets/logo_studio.png">
    </a>

    <div class = "collapse float-right">
      <ul class = "navbar-nav">
        <li class = "nav-item" [class.active] = "router.url == '/'">
          <a class = "nav-link d-flex align-items-center"  (click) = "goToTop()"  (mouseenter) = "hover[0] = true" (mouseleave) = "hover[0] = false" [class.active] = "hover[0] && router.url !== '/'" routerLink = "/">
            <i class = "fas fa-home"></i>
            Strona główna
          </a>
        </li>
        <li class = "nav-item" [class.active] = "router.url == '/#o-nas'" *ngIf = "router.url !== '/video' && router.url !== '/galeria'">
          <a class = "nav-link d-flex align-items-center" (mouseenter) = "hover[1] = true" (mouseleave) = "hover[1] = false" [class.active] = "hover[1] && router.url !== '/#o-nas'"  href = "#o-nas">
            O Nas
          </a>
        </li>
        <li class = "nav-item" [class.active] = "router.url == '/#kontakt'" *ngIf = "router.url !== '/video' && router.url !== '/galeria'">
          <a class = "nav-link d-flex align-items-center" (mouseenter) = "hover[2] = true" (mouseleave) = "hover[2] = false" [class.active] = "hover[2] && router.url !== '/#kontakt' " href = "#kontakt">
            Kontakt
          </a>
        </li>
        <li class = "nav-item" [class.active] = "router.url == '/galeria'">
          <a class = "nav-link d-flex align-items-center" (mouseenter) = "hover[3] = true" (mouseleave) = "hover[3] = false" [class.active] = "hover[3] && router.url !== '/galeria'" routerLink = "/galeria">Galeria</a>
        </li>

        <li class = "nav-item" [class.active] = "router.url == '/video'">
          <a class = "nav-link d-flex align-items-center" (mouseenter) = "hover[4] = true" (mouseleave) = "hover[4] = false" [class.active] = "hover[4] && router.url !== '/video'" routerLink = "/video">Video</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

Я не вижу section в вашем примере кода html.

HDJEMAI 14.06.2018 20:47

Я описал это, раздел находится ниже в home.component.html с id = „o-nas”

Freestyle09 14.06.2018 23:20
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
2
2
4 891
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите изменить выбранный цвет в соответствии со страницей прокрутки, вы можете сравнить свою прокрутку с положением раздела.

Я просто привел пример. Проверь это. https://stackblitz.com/edit/scroll-active-scroll

Хм, это отредактированное - это то, что я искал, я буду позже дома и проверю это

Freestyle09 15.06.2018 16:56

Другие вопросы по теме