Reputation: 717
I need your help, friends, in creating a loading spinner for ajax request. It is looking like this:working sample video
Here is the HTML for the spinner
This is css for this spinner:
$(document).ready(function() {
$loading_indicator = $(document).find( '.loading-indicator' );
$loading_indicator.addClass( 'active' );
$loading_indicator.removeClass( 'active' );
});
.loading-indicator {
width: 40px;
height: 40px;
background-color: #ddd;
border-radius: 100%;
-webkit-animation: sk-scaleout 1.0s infinite ease-in-out;
animation: sk-scaleout 1.0s infinite ease-in-out;
visibility: hidden;
opacity: 0;
transition: opacity 0.2s linear, visibility 2s ease;
position: absolute;
top: 0;
margin: 0 auto;
left: 0;
right: 0;
}
.loading-indicator.active {
visibility: visible;
opacity: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="loading-indicator" style=""></div>
Please help me to make it work, as I want it blinking like on the video while ajax request is processing
Upvotes: 2
Views: 1159
Reputation: 479
window.addEventListener("load", (event) => {
console.log("page is fully loaded");
setTimeout(function () {
document.getElementsByClassName("preloader").style.display = "none";
}, 0);
});
/********** Preloader **********/
span{
display: inline-block
}
.preloader {
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
background-color: #2C2D2F;
z-index: 10000; }
.preloader .loader {
position: absolute;
top: 50%;
width: 100%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
text-align: center; }
.preloader .loader h4 {
text-transform: uppercase;
margin-bottom: 10px;
font-weight: 700;
color: heading-color; }
.loader span {
width: .6em;
height: .6em;
margin: .19em;
background: #007DB6;
-webkit-border-radius: .6em;
border-radius: .6em;
-webkit-animation: loading 1s infinite alternate;
animation: loading 1s infinite alternate; }
.loader span:nth-of-type(2) {
background: #008FB2;
-webkit-animation-delay: 0.2s;
animation-delay: 0.2s; }
.loader span:nth-of-type(3) {
background: #009B9E;
-webkit-animation-delay: 0.4s;
animation-delay: 0.4s; }
.loader span:nth-of-type(4) {
background: #00A77D;
-webkit-animation-delay: 0.6s;
animation-delay: 0.6s; }
.loader span:nth-of-type(5) {
background: #00B247;
-webkit-animation-delay: 0.8s;
animation-delay: 0.8s; }
.loader span:nth-of-type(6) {
background: #5AB027;
-webkit-animation-delay: 1.0s;
animation-delay: 1.0s; }
.loader span:nth-of-type(7) {
background: #A0B61E;
-webkit-animation-delay: 1.2s;
animation-delay: 1.2s; }
/*
* Animation keyframes
* Use transition opacity instead of keyframes?
*/
@-webkit-keyframes loading {
0% {
opacity: 0; }
100% {
opacity: 1; } }
@keyframes loading {
0% {
opacity: 0; }
100% {
opacity: 1; } }
<div class="preloader">
<div class="loader">
<!--Your Name-->
<h4>Vijay Kanaujia</h4>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
Upvotes: 0
Reputation: 4987
html,
body {
background: #ed5565;
color: #fff;
}
.ball-scale>div {
background-color: #fff;
width: 15px;
height: 15px;
border-radius: 100%;
margin: 2px;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
display: inline-block;
height: 60px;
width: 60px;
-webkit-animation: ball-scale 1s 0s ease-in-out infinite;
animation: ball-scale 1s 0s ease-in-out infinite;
}
@keyframes ball-scale {
0% {
-webkit-transform: scale(0);
transform: scale(0);
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
opacity: 0;
}
}
<div class="loader">
<div class="ball-scale">
<div></div>
</div>
</div>
Upvotes: 2