Мне сложно понять, как наложить три значка на кнопку mat в Material Angular. Почему я пытаюсь это сделать? У меня есть этот код и в зависимости от случая значок меняется. Это меняется с помощью AnimationTrigger, а не ngif. Примерно так
<button mat-icon-button (click)="chat.start()">
<mat-icon [@enableDisable]="!chat.searching && !chat.room ? 'open' : 'closed'">power_settings_new
</mat-icon>
<mat-icon [@enableDisable]="!chat.searching && chat.room ? 'open' : 'closed'">exit_to_app</mat-icon>
<mat-icon [@enableDisable]="chat.searching && !chat.room ? 'open' : 'closed'">clear</mat-icon>
</button>
Триггер анимации:
trigger('enableDisable', [
state('open', style({
transform: 'scale(1)',
})),
state('closed', style({
transform: 'scale(0)',
})),
transition('open => closed', [
animate('0.15s')
]),
transition('closed => open', [
animate('0.15s')
]),
]),
Я пробовал делать такие вещи, как сделать позицию от button
до relative
, а затем делать это
mat-icon {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
который работает, но они не выравниваются по центру. Что я могу сделать, чтобы это исправить?
https://stackblitz.com/edit/angular-92fjph