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

如何在 Angular 2 中對 ngIf 控制的元素進行動畫處理?

Linda Hamilton
發布: 2024-10-26 21:44:29
原創
786 人瀏覽過

How to Animate Elements Controlled by ngIf in Angular 2?

Angular 2 ngIf 和CSS 轉換/動畫

這個問題深入研究了在ngIf 操作的元素上執行CSS 轉換或動畫的挑戰Angular 2 中的指令。

問題

目標是使用 CSS 為元素從右側的入口設定動畫。然而,當最初使用 ngIf 隱藏元素時,轉換無法觸發。

關鍵問題在於 ngIf 的行為。當與 ngIf 關聯的表達式變為 false 時,該元素將從 DOM 中刪除。由於過渡和動畫要求元素存在於 DOM 中,因此將它們應用於未渲染的元素將無法發揮作用。

要解決此問題,建議使用hide 而不是ngIf 來隱藏

更新的解決方案(Angular 4.1.0 及更高版本)

在Angular 4.1.0 及更高版本中,首選方法是使用Angular 動畫。這是使用動畫的更新解決方案:

<code class="typescript">import { trigger, style, animate, transition } from '@angular/animations';

// ...

@Component({
  animations: [
    trigger(
      'enterAnimation', [
        transition(':enter', [
          style({ transform: 'translateX(100%)', opacity: 0 }),
          animate('500ms', style({ transform: 'translateX(0)', opacity: 1 }))
        ]),
        transition(':leave', [
          style({ transform: 'translateX(0)', opacity: 1 }),
          animate('500ms', style({ transform: 'translateX(100%)', opacity: 0 }))
        ])
      ]
    )
  ]
})

// ...

<div *ngIf="show" [@enterAnimation]></div></code>
登入後複製

此解決方案為名為「enterAnimation」的元件新增了一個觸發器,並定義了進入和離開狀態的轉換。過渡包括變換和不透明度的樣式,允許元素通過動畫從右側滑入。

請記住,此解決方案適用於 Angular 4.1.0 及更高版本。對於舊版本,使用隱藏仍然是建議的方法。

以上是如何在 Angular 2 中對 ngIf 控制的元素進行動畫處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!