<span class="loading">
  <span></span>
  <span></span>
  <span></span>
  <span></span>
</span>
$speed: 2s;


/* ------------------------- */


*, ::before, ::after { box-sizing: border-box; }
html, body { height: 100%; }

body {
  display: flex;
  
  background-color: #e7e6dd;
}

.loading {
  display: block;
  margin: auto;
  position: relative;
  width: 100px;
  height: 100px;
  
  span {
    display: block;
    position: absolute;
    width: 50%;
    height: 50%;
    
    &:nth-child(1) {
      top: 0;
      left: 0;
      
      background-color: rgba( #4285f4, .75 );
      
      animation: move1 $speed linear infinite;
    }
    &:nth-child(2) {
      top: 0;
      right: 0;
      
      background-color: rgba( #db4437, .75 );
      
      animation: move2 $speed linear infinite;
    }
    &:nth-child(3) {
      bottom: 0;
      left: 0;
      
      background-color: rgba( #f4b400, .75 );
      
      animation: move3 $speed linear infinite;
    }
    &:nth-child(4) {
      bottom: 0;
      right: 0;
      
      background-color: rgba( #0f9d58, .75 );
      
      animation: move4 $speed linear infinite;
    }
  }
}

@keyframes move1 {
  0%   { transform: translate( 0 ); z-index: 10; }
  25%  { transform: translate( 100%, 0 ); }
  50%  { transform: translate( 100%, 100% ); }
  75%  { transform: translate( 0, 100% ); z-index: 0; }
  100% { transform: translate( 0 ); }
}
@keyframes move2 {
  0%   { transform: translate( 0 ); }
  25%  { transform: translate( 0, 100% ); }
  50%  { transform: translate( -100%, 100% ); z-index: 0; }
  75%  { transform: translate( -100%, 0 ); z-index: 10; }
  100% { transform: translate( 0 ); }
}
@keyframes move3 {
  0%   { transform: translate( 0 ); }
  25%  { transform: translate( 0, -100% ); z-index: 10; }
  50%  { transform: translate( 100%, -100% ); }
  75%  { transform: translate( 100%, 0 ); }
  100% { transform: translate( 0 ); z-index: 0; }
}
@keyframes move4 {
  0%   { transform: translate( 0 ); }
  25%  { transform: translate( -100%, 0 ); z-index: 0; }
  50%  { transform: translate( -100%, -100% ); z-index: 10; }
  75%  { transform: translate( 0, -100% ); }
  100% { transform: translate( 0 ); }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js