utilizar un div #overlay
con su carga de información/.gif que cubrirá todo tu página:
<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();
});
He aquí un ejemplo con un Cargando barra de :
jsBin demo
<div id="overlay">
<div id="progstat"></div>
<div id="progress"></div>
</div>
<div id="container">
<img src="http://placehold.it/3000x3000/cf5">
</div>
CSS:
*{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;
}
JavaScript:
;(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);
}());
Nice! Funciona sin ningún "efecto secundario". ¡Muchas gracias! –
¿Estás seguro de que no hay "efectos secundarios"? Estaba recordando que .load() no estaba esperando algunos elementos, como una carga completa de todas las imágenes en la página. ** Editar: ** No estaba recordando bien, no debería tener ningún efecto secundario, [aquí hay una explicación de por qué] (http://ablogaboutcode.com/2011/06/14/how-javascript-loading- works-domcontentloaded-and-onload /) –
Me di cuenta de que esta respuesta es un poco antigua, pero me preguntaba si habría una solución que se degradaría muy bien si el usuario tuviera javascript deshabilitado. Porque actualmente terminan con un GIF de carga para un sitio web. – arandompenguin