У меня есть угловое приложение. Его HTML файл содержит div
со строкой класса, которая сама содержит два div
s с классом col
. При нажатии на кнопку размер столбцов изменяется:
<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>
Для плавного изменения размера я добавил свойство перехода в классы col
в файле CSS :
.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
, а затем перемещается в правильное место.
Можете ли вы помочь мне решить это? Я предпочитаю решать эту проблему без использования угловой анимации.