Precarga tu página con jQuery y CSS

Precargar una página es importante para mejorar la experiencia del usuario, esto en caso nuestra página sea muy pesada o por que cuando la página no se ha cargado completamente se puede ver desordenada o incompleta.

preloader

Un poco de teoría

Para inicializar una página se realiza con el evento ready es decir cuando se cargado el DOM o HTML, además de ello existe el evento load el cual se ejecuta cuando ademas del HTML se ha cargado todo el contenido (imágenes, css, etc).

  1. $(document).ready(function(e) {
  2.    // html loaded
  3. });
  4. $(document).load(function(e) {
  5.    // html + images + css loaded
  6. });

Entonces lo que haremos es agregar un div que cubra toda la página y una vez que todo el contenido se haya cargado ocultar este div para develar el contenido de nuestra web.

Implementado en Precargador

Lo primero es editar nuestro HTML y crear un div que contendrá la imagen de un precargador.

  1. <div id="preloader">
  2.     <div id="loader"> </div>
  3. </div>

Luego agregamos código CSS para hacer que este div recién creado se muestre cubriendo completamente nuestra página:

[css]
body {
overflow: hidden;
}
/* preloader */
#preloader {
position: fixed;
top:0; left:0;
right:0; bottom:0;
background: #000;
z-index: 100;
}
#loader {
width: 100px;
height: 100px;
position: absolute;
left:50%; top:50%;
background: url(../img/loader.gif) no-repeat center 0;
margin:-50px 0 0 -50px;
}
[/css]

Finalmente agregamos el código javascript, para ello detectamos que se ha completado la carga de todo el contenido del HTML utilizando el método ready y utilizamos una transición para ocultar el div creado previamente con lo cual se devela nuestra página.

  1. $(window).load(function() {
  2.     $(‘#preloader’).fadeOut(‘slow’);
  3.     $(‘body’).css({‘overflow’:’visible’});
  4. })

Finalizando

Ahora que tenemos todo el proceso lo vamos a unir en un solo archivo html para hacer las pruebas respectivas:

  1. <html>
  2. <head>
  3. <title>Preloader Demo</title>
  4. <style type="text/css">
  5. body {
  6.     overflow: hidden;
  7. }
  8. /* preloader */
  9. #preloader {
  10.     position: fixed;
  11.     top:0; left:0;
  12.     right:0; bottom:0;
  13.     background: #000;
  14.     z-index: 100;
  15. }
  16. #loader {
  17.     width: 100px;
  18.     height: 100px;
  19.     position: absolute;
  20.     left:50%; top:50%;
  21.     background: url(img/loader.gif) no-repeat center 0;
  22.     margin:-50px 0 0 -50px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="preloader">
  28.     <div id="loader"> </div>
  29. </div>
  30. <div id="main">
  31.    …
  32. </div>
  33. <script src="jquery.js">
  34. </script>
  35. <script type="text/javascript">
  36. $(window).load(function() {
  37.     $(‘#preloader’).fadeOut(‘slow’);
  38.     $(‘body’).css({‘overflow’:’visible’});
  39. })
  40. </script>
  41. </body>
  42. </html>

Pueden ver el ejemplo funcionando en: http://samples.unijimpe.net/html-preloader/. Obviamente este es un precargador básico pero que cumple con lo necesario para mostrar al usuario una precarga.

Les dejo los archivos para que puedan hacer sus pruebas: cambiando el color de fondo o cambiando la imágen de precarga, todo depende de su creatividad y de gráfica que desean utilzar.