ionic 4アプリにGIFまたはSVGアニメーションを含むカスタムロードスピナーを作成したいこの場合、カスタムSVGまたはGIFを使用しますか?
async presentLoading() {
const loading = await this.loadingController.create({
spinner: 'bubbles',
duration: 2000
});
return await loading.present();
}
ionic V4公式ドキュメントのように、それは不可能です。しかし、CSSを介してトリックを使用できます。
使用する <ion-img>
タグ内メッセージ代わりにアラートのキー<img/>
鬼ごっこ
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
});
カスタムキーフレームを作成します。これを使用して、独自のアニメーションを生成することもできます。
// 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********************
カスタムクラスを作成する
.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;
}
私はこのヘルプを願っています。
async showLoader() {
if (!this.loader) {
this.loader = await this.loadingController.create({
spinner: null,
message: '' ,
cssClass: 'custom-class custom-loading',
});
}
await this.loader.present();
}
このCSSクラスを使用してGifを背景として追加できます。また、イオン読み込みを使用して読み込みダイアログのスタイルを設定することもできます。
EResman、
私は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();
at theme/variables.scss
ion-loading.custom-loading {
.loading-wrapper {
background: #ffffff url("assets/gif/loading.gif") no-repeat center;
}
}
寸法を変更したい場合は、このプロパティを変更できます。
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 */
お役に立てば幸いです。