I would like to display a loading bar before the entire page is loaded. For now, I'm just using a small delay:
$(document).ready(function(){     $('#page').fadeIn(2000); }); The page already uses jQuery.
Note: I have tried this, but it didn't work for me: loading bar while the script runs
I also tried other solutions. In most cases, the page loads as usual, or the page won't load/display at all.
Step 1: Add a background with a spinner gif on top of the page, then remove them when everything is loaded. Step 2: Add a little script right after the opening body tag to start displaying the load/splash screen.
Use a div #overlay with your loading info / .gif that will cover all your page:
<div id="overlay">      <img src="loading.gif" alt="Loading" />      Loading... </div> jQuery:
$(window).load(function(){    // PAGE IS FULLY LOADED      // FADE OUT YOUR OVERLAYING DIV    $('#overlay').fadeOut(); }); Here's an example with a Loading bar:
jsBin demo
;(function(){   function id(v){ return document.getElementById(v); }   function loadbar() {     var ovrl = id("overlay"),         prog = id("progress"),         stat = id("progstat"),         img = document.images,         c = 0,         tot = img.length;     if(tot == 0) return doneLoading();      function imgLoaded(){       c += 1;       var perc = ((100/tot*c) << 0) +"%";       prog.style.width = perc;       stat.innerHTML = "Loading "+ perc;       if(c===tot) return doneLoading();     }     function doneLoading(){       ovrl.style.opacity = 0;       setTimeout(function(){          ovrl.style.display = "none";       }, 1200);     }     for(var i=0; i<tot; i++) {       var tImg     = new Image();       tImg.onload  = imgLoaded;       tImg.onerror = imgLoaded;       tImg.src     = img[i].src;     }       }   document.addEventListener('DOMContentLoaded', loadbar, false); }());*{margin:0;} body{ font: 200 16px/1 sans-serif; } img{ width:32.2%; }  #overlay{   position:fixed;   z-index:99999;   top:0;   left:0;   bottom:0;   right:0;   background:rgba(0,0,0,0.9);   transition: 1s 0.4s; } #progress{   height:1px;   background:#fff;   position:absolute;   width:0;                /* will be increased by JS */   top:50%; } #progstat{   font-size:0.7em;   letter-spacing: 3px;   position:absolute;   top:50%;   margin-top:-40px;   width:100%;   text-align:center;   color:#fff; }<div id="overlay">   <div id="progstat"></div>   <div id="progress"></div> </div>  <div id="container">   <img src="http://placehold.it/3000x3000/cf5"> </div>If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With