CSS Animation Trick to save state
HTML
<div class="vh">
<div class="sk-spinner sk-spinner-wave">
<div class="sk-rect1"></div>
<div class="sk-rect2"></div>
<div class="sk-rect3"></div>
<div class="sk-rect4"></div>
<div class="sk-rect5"></div>
</div>
</div>
CSS
/*
* Usage:
*
* <div class="sk-spinner sk-spinner-wave">
* <div class="sk-rect1"></div>
* <div class="sk-rect2"></div>
* <div class="sk-rect3"></div>
* <div class="sk-rect4"></div>
* <div class="sk-rect5"></div>
* </div>
*
*/
.sk-spinner-wave.sk-spinner {
font-size: 10px;
height: 30px;
margin: 0 auto;
text-align: center;
width: 50px;
}
.sk-spinner-wave div {
-webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
background-color: #1ab394;
display: inline-block;
height: 100%;
width: 6px;
}
.sk-spinner-wave .sk-rect2 {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
.sk-spinner-wave .sk-rect3 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
.sk-spinner-wave .sk-rect4 {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
.sk-spinner-wave .sk-rect5 {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
@-webkit-keyframes sk-waveStretchDelay {
0%,
40%,
100% {
-webkit-transform: scaleY(0.4);
transform: scaleY(0.4);
}
20% {
-webkit-transform: scaleY(1);
transform: scaleY(1);
}
}
@keyframes sk-waveStretchDelay {
0%,
40%,
100% {
-webkit-transform: scaleY(0.4);
transform: scaleY(0.4);
}
20% {
-webkit-transform: scaleY(1);
transform: scaleY(1);
}
}
body, html {
box-sizing:border-box;
height:100%;
margin:0;
}
.vh {
background-color: #fff;
height: 100%;
align-items: center;
display: flex;
}
.vh > div {
width: 100%;
text-align: center;
vertical-align: middle;
}