Pure CSS Loader

by humanzing

HTML

<div class="loading_warp">
<div class='loading'>
  <div class='bullet'></div>
  <div class='bullet'></div>
  <div class='bullet'></div>
  <div class='bullet'></div>
</div>
</div>

CSS

.loading_warp{
  position:fixed;
  top:0;
  bottom:0;
  left:0;
  right:0;
  z-index:10;
  background-color: #3b3b3b;
}
.loading {
    position: absolute;
    top: 50%;
    left: 50%;
}
.loading .bullet {
    position: absolute;
    padding: 5px;
    border-radius: 50%;
    background: lightseagreen;
    -webkit-animation: animIn 1s ease-in-out 0s infinite;
    animation: animIn 1s ease-in-out 0s infinite;
}
.loading .bullet:nth-child(1) {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}
.loading .bullet:nth-child(2) {
    -webkit-animation-delay: 0.15s;
    animation-delay: 0.15s;
}
.loading .bullet:nth-child(3) {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}
.loading .bullet:nth-child(4) {
    -webkit-animation-delay: 0.45s;
    animation-delay: 0.45s;
}
@-webkit-keyframes animIn {
    0% {
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px);
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        -webkit-transform: translateX(100px);
        transform: translateX(100px);
        opacity: 0;
    }
}
@keyframes animIn {
    0% {
        -webkit-transform: translateX(-100px);
        transform: translateX(-100px);
        opacity: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        -webkit-transform: translateX(100px);
        transform: translateX(100px);
        opacity: 0;
    }
}

JavaScript

window.addEventListener('load', function () {
  var elements = document.getElementsByClassName('loading_warp')[0];
  elements.parentNode.removeChild(elements);

})