亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在兩個子組件之間切換時,Angular ngIf 會導致高度 CSS 過渡

在兩個子組件之間切換時,Angular ngIf 會導致高度 CSS 過渡

HUH函數 2022-01-13 16:04:42
我在 Angular 中有一個“按鈕”組件,有一個loading輸入。如果值為,false則顯示按鈕的文本,如通過內容投影 ( <ng-content>) 顯示的那樣。如果true,它會隱藏內容并改為顯示“微調器”組件。這在模板中使用*ngIf:<button class="btn"  [ngClass]="{'loading': loading}">  <ng-content *ngIf="!loading"></ng-content>  <app-spinner *ngIf="loading"></app-spinner></button>這適用于在兩個視圖之間切換;如果按鈕上的 Input 發生變化,模板會正確呈現它。但是,當輸入發生變化并顯示微調器時,會導致按鈕高度出現奇怪的動畫。當按鈕 CSS 具有transition: all 0.25s ease-out;. 如果我把它注釋掉,那很好。但如果可能的話,我想保留轉換屬性。我創建了一個 Stackblitz 來演示它: https ://stackblitz.com/edit/angular-ngif-in-button-strange-animation我想知道這是否是因為在 Angular 的更改檢測工作時,兩個組件都在瞬間顯示,但我不確定。
查看完整描述

1 回答

?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

我已經測試了你的 stackblitz 并且padding.btn類中刪除將停止提高按鈕大小。

發生這種情況是因為在第一幀中,.btn正在應用來自 的填充,使按鈕提高了它的高度。之后,從.loading類中應用第二種樣式,將填充重置為padding: 0 12px,然后高度變為正常大小。


查看完整回答
反對 回復 2022-01-13
  • 1 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號