網站搜尋

html - 如果我在 Angular 中點擊該類別則隱藏 div


我正在為我的 Angular 練習(版本 13)製作一個漢堡選單。

當我點擊漢堡圖標時,它會隱藏並打開菜單(切換),但我也希望在點擊其中一個元素(首頁、關於我、我的作品)後隱藏菜單。

我計劃的解決方案是,如果我點擊其中一個 nav__item 類別,就隱藏 nav 類別。

我的標題元件:

Html:

<header>
  <div class="logo">
      <img src="assets/img/norberticon.png" alt="">
  </div>
  <button class="nav-toggle" aria-label="toggle navigation" (click)="toggleShow()">
      <span class="hamburger"></span>
  </button>

  <nav class="nav" *ngIf="isShown">
      <ul class="nav__list" >
          <li class="nav__item"><a routerLink="/" class="nav__link">Home</a></li>
          <li class="nav__item"><a routerLink="about" class="nav__link">About me</a></li>
          <li class="nav__item"><a routerLink="/mywork" class="nav__link">My Work</a></li>
      </ul>
  </nav>

</header>

.Ts 代碼,用於切換選單:

  isShown: boolean = false ; // hidden by default


  toggleShow() {
  
  this.isShown = ! this.isShown;
  
  }

菜單:

答案#1

將 toggleShow() 函數添加到每個 li 元素不起作用嗎?

<li class="nav__item"><a routerLink="/" class="nav__link" (click) = "toggleShow()">Home</a></li>
<li class="nav__item"><a routerLink="about" class="nav__link" (click) = "toggleShow()">About me</a></li>
<li class="nav__item"><a routerLink="/mywork" class="nav__link" (click) = "toggleShow()">My Work</a></li>

答案#2

CSS3:建立一個隱藏屬性和一個顯示屬性,如下

.hidden{
display:none;
}

.show{

display:block; //or inline etc
}


JavaScript:

    

const elementToBeHidden = document.
querySelector('.classselector');

const ToggleShow =()=>{
elementToBeHidden.classList.toggle('hidden');
}

這將有效地在隱藏和顯示你想要的任何元素之間切換,次數隨你想要的次數。請注意,這只是偽代碼來說明邏輯。希望這對你有幫助.....和平,掰掰 👍