#loader {
  position: fixed;  /* changed from absolute to fixed */
  left: 0;         /* cover whole page */
  top: 0;          /* cover whole page */
  width: 100%;     /* cover whole page */
  height: 100%;    /* cover whole page */
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.8);
}

#loader::after {     /* create spinning element */
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 120px;
  height: 120px;
  margin: -76px 0 0 -76px;
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid #3498db;
  border-bottom: 16px solid #3498db;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}
  
  @-webkit-keyframes spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
  }
  
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }