首頁 > web前端 > css教學 > 主體

如何透過 Angular 2 的 ngIf 指令使用 CSS 轉換和動畫?

Mary-Kate Olsen
發布: 2024-10-30 03:18:28
原創
572 人瀏覽過

How to Use CSS Transitions and Animations with Angular 2's ngIf Directive?

Angular 2 ngIf 和CSS 轉換/動畫

Angular 2 的ngIf 指令通常用於根據給定表達式有條件地渲染元素指令。但是,在這些元素上使用 CSS 轉換或動畫時,可能會出現意外行為。

請考慮以下程式碼片段:

// ...
<div class="note" [ngClass]="{'transition':show}" *ngIf="show">
  <p> Notes</p>
</div>
// ...
登入後複製

在此範例中,目標是讓 div 元素當 show 設定為 true 時,使用 CSS 從右側滑入。 *ngIf 指令確保僅當 show 為 true 時才渲染元素,但當 show 為 false 時,該元素會從 DOM 中完全刪除。

出現此問題是因為 CSS 動畫或轉場要求目標元素在動畫持續期間出現在 DOM 中。由於 *ngIf 在 show 為 false 時刪除元素,因此 CSS 中定義的任何過渡都不會生效。

解決方案:

要解決此問題,建議使用 [hidden] 屬性而不是 ngIf 來隱藏應該動畫的元素。

// ...
<div class="note" [ngClass]="{'transition':show}" [hidden]="!show">
  <p> Notes</p>
</div>
// ...
登入後複製

透過使用 [hidden],該元素仍然存在於 DOM 中,但其可見性設定為「隱藏」當顯示為假時。這確保了該元素可用於要套用的 CSS 動畫或轉場。

以上是如何透過 Angular 2 的 ngIf 指令使用 CSS 轉換和動畫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板