У меня есть div, который нужно размыть / уменьшить непрозрачность на mouseenter
.
Я создал 2 css класс с именами .blur
и .less-opacity
Компонент. css
.blur {
-webkit-filter: blur(10px);
-moz-filter: blur(10px);
-o-filter: blur(10px);
-ms-filter: blur(10px);
filter: blur(10px);
}
.less-opacity {
opacity: 0.5;
}
У меня есть переменные в TS для переключения с размытого на не размытое. Также есть Input()
переменные, одной из которых является имя FontAwesome Icon.
Component.ts
...
@Input() iconName: string; //Contains for example 'bed'
@Input() subTitle: string;
@Input() info: string;
private isVisible: boolean = true;
private isBlurred: boolean = false;
...
switchVisible() {
this.isVisible = !this.isVisible;
this.isBlurred = !this.isBlurred;
}
Я не могу понять, как правильно кодировать [ngClass]
, чтобы иметь оба условия для .blur
и .less-opacity
и на в то же время конкатенация для имени FontAwesome Icon.
Component. html
<div class="vignette d-flex flex-column justify-content-center align-items-center" (mouseenter)="switchVisible()" (mouseleave)="switchVisible()">
<i [ngClass]="{ 'blur' : isBlurred, 'less-opacity' : !isVisible, 'fa-' + iconName : true }" class="vignette-icon fal fa-3x"></i>
<p [ngClass]="{ 'blur' : isBlurred, 'less-opacity' : !isVisible}" class="vignette-subtitle px-3">{{ subTitle }}</p>
<p class="vignette-info px-3"></p>
</div>
Как вы можете видеть, я пробовал использовать следующий метод [ngClass]="{'my-class': expression, 'my-class2': expression }"
У меня нет ошибок консоли, но класс значков установлен неправильно и приводит к значку ошибки.
Вот результат, который я получаю, когда происходит событие mouseenter
![enter image description here](https://i.stack.imgur.com/S6tzu.png)
Классы .blur
и .less-opacity
правильно добавлено к <p>
, но <i>
не правильно установлено.
Мой вопрос: Как мне кодировать [ngClass]
для <i>
, который требует объединения в имени класса?