【发布时间】:2019-02-18 17:27:46
【问题描述】:
我有一个 Angular 应用程序。它的 HTML 文件包含一个带有类行的div,它本身包含两个带有类col 的divs。通过单击按钮,列的大小会发生变化:
<button class="btn btn-primay" (click)="changeColumnsSize()"> change column sizes</button>
<div class="row">
<div id="leftColumn" class="col-sm-{{leftColumnSize}}" style="background-color:lavender;">
.col-sm-8
</div>
<div id ="rightColumn" *ngIf="this.state===true" class="col-sm-{{rightColumnSize}}" style="background-color:lavenderblush;">
.col-sm-4
</div>
</div>
为了平滑调整大小,我在 CSS 文件中的 col 类中添加了过渡属性:
.col-sm-8 { transition: width .5s ease; }
.col-sm-4 { transition: width .5s ease ; }
TS 文件(包含changeColumnsSize 函数)如下所示:
export class BoxComponent {
leftColumnSize: number = 12;
rightColumnSize: number = 0;
colDifference: number = 4;
state: boolean = false;
constructor() { }
changeColumnsSize(){
if (this.state===false)
this.state = true;
else
this.state = false;
if(this.state===true) {
this.leftColumnSize-=this.colDifference;
this.rightColumnSize+=this.colDifference;
}
else if (this.state===false) {
this.leftColumnSize+=this.colDifference;
this.rightColumnSize-=this.colDifference;
}
}
}
但是,有一个问题。每次转换发生时,rightColumn 会出现在leftColumn 下方,然后向上移动到正确的位置。
你能帮我解决这个问题吗?我更喜欢在不使用 Angular 动画的情况下解决这个问题。
【问题讨论】:
标签: html css angular css-transitions