Div是立即扩展,而不是随着时间扩展?

时间:2018-12-05 15:57:59

标签: html css angular animation angular-material

单击触发器后,我的div会立即扩展,而不是随着时间的流逝而发生……这是为什么,我该如何解决?

html

<div class="card" #panel [ngClass]="{heightChange: panel.isExpanded}">
  <div class="header">
    <div class="itemName">Some text goes here</div>
    <mat-icon *ngIf="!panel.isExpanded" (click)="panel.isExpanded=true">edit</mat-icon>
    <mat-icon *ngIf="panel.isExpanded" (click)="panel.isExpanded=false">cancel</mat-icon>
  </div>
</div>

css

div.card {
  background: white;
  padding: 12px;
  justify-items: center;
  transition: all 0.5s;
}

mat-icon {
  cursor: pointer;
}

div.header {
  display: flex;
  justify-content: space-between;
}

.heightChange {
  height: 150px;
}

stackblitz

1 个答案:

答案 0 :(得分:1)

只需在您的height类中添加一个div.card属性以获取初始高度。

然后添加另一个具有新高度的名为div.card.heightChange的类。 transition仅适用于height,而不是全部。

将CSS类更改为此:

div.card {
  background: white;
  padding: 12px;
  height: 25px;
  justify-items: center;
  transition: height 0.5s;
}

div.card.heightChange {
  height: 150px;
}

这是您推荐的Working Sample StackBlitz