J'essaye de spécifier une image d'arrière-plan alternative pour un DIV comme ceci:
<div [ngStyle]="{'background-image':'url(1.jpg), url(2.jpg)'}"></div>
Aucune des images ne s'affiche (cela fonctionne si je ne spécifie pas d'image alternative).
/ p>
Est-il possible de spécifier plusieurs images d'arrière-plan en utilisant ngStyle?
3 Réponses :
Essayez comme ceci
template.html
isActive: boolean = true;
cmponent.ts
<div class="image" [ngStyle]="{background: !isActive ? 'url(https://www.fonewalls.com/wp-content/uploads/Aqua-Solid-Color-Background-Wallpaper-for-Mobile-Phone.png)' : 'url(https://www.fonewalls.com/wp-content/uploads/Midnight-Blue-Solid-Color-Background-Wallpaper-for-Mobile-Phone.png)'}"></div>
Fichier de modèle
export class AppComponent {
name = 'Angular';
img1 = 'https://www.w3schools.com/css/img_flwr.gif';
img2 = 'https://www.w3schools.com/css/paper.gif'
isSelected: boolean = true;
styles = {};
setCurrentStyles() {
this.styles = {
backgroundImage: this.isSelected ?
`url(${this.img1})`:`url(${this.img2})`
};
}
toogleImage() {
this.isSelected = !this.isSelected;
this.setCurrentStyles();
}
}
Merci pour cela Saurabh (et à tous les autres qui ont répondu). C'est un joli modèle et je l'ai implémenté.
Vous pouvez également garder votre HTML propre en déplaçant toute la logique dans le component.ts.
À la fin, vous auriez quelque chose comme ceci:
private defineBackImage(someArg) {
if (stuff) {
this.backgroundImageString = url1;
} else {
this.backgroundImageString = url2;
}
}
Ensuite dans votre composant:
<div class="image" [ngStyle]="{
'background-image': 'url(' + backgroundImageString + ')'
}"></div>
Vous pouvez déclencher cette fonction sur init ou en fonction d'événements spécifiques, vous pouvez également étendre cette logique pour afficher bien plus de 2 arrière-plans
En fonction de ce qu'une image de fond doit être affichée sur l'autre? Ou devraient-ils toujours être montrés tous les deux?
Si le premier ne peut pas être trouvé, le second doit être affiché. Il fonctionne comme du CSS normal mais n'utilise pas le
ngStyled'Angular.cela fonctionne, veuillez consulter cet exemple: stackblitz.com / edit / angular-yvuaf2? file = src / app /… La première URL a une ressource non valide, donc la deuxième image est rendue.