Basically, what I want to do is show a loading spinner for 2-3 seconds after logging in to my app, to simulate some loading time as it communicates with my API to get data.
How do I go about in doing this?
Basically, what I want to do is show a loading spinner for 2-3 seconds after logging in to my app, to simulate some loading time as it communicates with my API to get data.
How do I go about in doing this?
Try to start reading the docs would be the best place to start.
Your answer:
Main docs:
Just use setTimeout with the call to dismiss the spinner.
I already read the docs. What I’m asking is that is there any function that I can set the spinner to load for a certain time then fade out.
Hmmm that could be it. I’ll try it and see if it works
As the docs mention (here) there’s also the duration
property that you can set.
as @SigmundFroyd also mentioned. If you’d just copied the example in de docs and read it, then you’d have seen that there is a duration property.
Here is a little “hack” you can do:
<ion-app>
<div class="lds-ripple">
<div></div>
<div></div>
</div>
<style type="text/css">
.lds-ripple {
position: absolute;
position: absolute;
top: 50%;
margin-top: -100px;
left: 50%;
margin-left:-100px;
}
@keyframes lds-ripple {
0% {
top: 96px;
left: 96px;
width: 0;
height: 0;
opacity: 1;
}
100% {
top: 18px;
left: 18px;
width: 156px;
height: 156px;
opacity: 0;
}
}
@-webkit-keyframes lds-ripple {
0% {
top: 96px;
left: 96px;
width: 0;
height: 0;
opacity: 1;
}
100% {
top: 18px;
left: 18px;
width: 156px;
height: 156px;
opacity: 0;
}
}
.lds-ripple div {
box-sizing: content-box;
position: absolute;
border-width: 4px;
border-style: solid;
opacity: 1;
border-radius: 50%;
-webkit-animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div:nth-child(1) {
border-color: #488aff;
}
.lds-ripple div:nth-child(2) {
border-color: #32db64;
-webkit-animation-delay: -0.5s;
animation-delay: -0.5s;
}
</style>
</ion-app>
Code between your ion-app tags will get replaced once your app is ready, so user will see your loading animation until things are ready.
I’m a bit confused. Isn’t index.html for the main app and shouldn’t be changed that easily? Can you provide a demo for this?
Well normally you should not play with index.html unless you know what you are doing;) hence i called it a hack. I use it in prod app.
As for the demo:
Oh I see. Well I’ll try it and see if it works out
well it works but only when the app starts up. I wanted to display the loading animation while my app is communication with my API and is loading up the data to display.
Sorry I misunderstood your case then. In this scenario its even easier. All you need to do is to use ‘loading’ component: https://ionicframework.com/docs/components/#loading
Basically in the call to API start it and after you receive response - call dismiss()
nvm I got it. called it after it’s done getting the data and mapping it out. thanks!