Je veux créer un spinner de chargement personnalisé pour mon ionic 4 avec une animation GIF ou SVG. Il n'y a pas de propriété "content" à remplir en html, alors comment remplacer les bulles SVG dans ce cas avec un SVG ou GIF personnalisé?
async presentLoading() {
const loading = await this.loadingController.create({
spinner: 'bubbles',
duration: 2000
});
return await loading.present();
}
Comme ionic V4 documentation officielle, ce n'est pas possible. Mais vous pouvez utiliser une astuce via CSS.
Utilisation <ion-img>
tag à l'intérieur message clé de allert au lieu de <img/>
tag
const loading = await this.loadingController.create({
message: '<ion-img src="/assets/svg/shopping.svg" alt="loading..."></ion-img>',
cssClass: 'scale-down-center',
translucent: true,
showBackdrop: false,
spinner: null,
duration: 2000
});
Créez des images clés personnalisées, vous pouvez également utiliser celle-ci pour générer votre propre animation.
// CUSTOM ANIMATION KEYFRAMS********************
@-webkit-keyframes scale-down-center {
0% {
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
-webkit-transform: scale(0.5);
transform: scale(0.5);
}
}
@keyframes scale-down-center {
0% {
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
-webkit-transform: scale(0.5);
transform: scale(0.5);
}
}
// CUSTOM ANIMATION KEYFRAMS********************
Créer une classe personnalisée
.scale-down-center {
-webkit-animation: scale-down-center 0.6s cubic-bezier(0.175, 0.885, 0.320, 1.275) infinite alternate both;
animation: scale-down-center 0.6s cubic-bezier(0.175, 0.885, 0.320, 1.275) infinite alternate both;
}
J'espère que cette aide.
async showLoader() {
if (!this.loader) {
this.loader = await this.loadingController.create({
spinner: null,
message: '' ,
cssClass: 'custom-class custom-loading',
});
}
await this.loader.present();
}
Vous pouvez utiliser cette classe CSS pour ajouter votre Gif comme arrière-plan. Vous pouvez également utiliser le chargement ionique pour styliser la boîte de dialogue de chargement.
EResman,
j'ai répondu à votre question sur ce lien
J'utilise IONIC 4
this.myLoading = await this.loadingCtrl.create({
spinner: null, -> here you can add others spinners ou set null
remove this attribute -> message: '<ion-img src="assets/gif/loading.gif"></ion-img>',
cssClass: 'custom-loading'
});
await this.myLoading.present();
sur theme/variables.scss
ion-loading.custom-loading {
.loading-wrapper {
background: #ffffff url("assets/gif/loading.gif") no-repeat center;
}
}
Si vous souhaitez modifier les dimensions, vous pouvez modifier ces propriétés.
background-size: 100px 100px; /* to change dimension of background */
padding-top: 36px; /* padding top of white square */
padding-bottom: 36px; /* padding bottom of white square */
border-radius: 0.8rem; /* border-radius white square */
J'espère que cela vous aidera.