Mostrar imagen "Cargando.gif" mientras carga

TeTu

Buenas tardes, a ver si me podeis echar una mano con un pequeño problemilla que tengo.

Tengo una web con bastantes imagenes, y me parece que queda feo que vayan cargando una a una, y quisiera implementar un "script" que mientras se carga la web aparezca un gif que ponga "cargando" o "loading", y una vez cargada, muestre la pagina.

Algo similar a lo que tiene whose en su blog, y en muchas otras webs.

He intentado echarle un ojo al codigo fuente pero ando bastante perdidillo, y en google solo he encontrado 2 scrips que me dan error tanto en Mozilla como en IE.

A ver si alguien me echa una mano y me pastea el codigo, o me guia por el buen camino.

Saludos y gracias.

erdanblo

<script type="text/javascript" language="JavaScript">
function Oculta() {
a=document.getElementById("precarga");
a.style.visibility="hidden";
}
window.onload=Oculta;

</script>

Luego en la imágen la metes en una capa con id "precarga".

El código está sacado tal cual de www.whose-gfx.net

TeTu

Lo que sale en la web de whose no es exactamente lo que busco, he encontrado este plugin pero me falla, aunque un par de veces me lo ha hecho bien y no se donde puede estar el fallo.

Método 1

Este procedimiento ha sido probado tanto para Internet Explorer como para Mozilla Firefox

1.- Colocar el siguiente javascript entre <head> y </head>

<script language="JavaScript" type="text/javascript">
function muestraGranDiv(){
document.getElementById('granDiv').style.visibilit y = "visible";
document.getElementById('cargando').style.visibili ty = "hidden";
}
</script>

2.- Cargar javascript (invocar función) en body mediante evento onLoad

< body onload="muestraGranDiv()">

3.- Colocar DIVs dentro del body

<div id="cargando" style="width: 100%; height: 500px; position: absolute; padding-top:20px; text-align:center"><span class="fontloadingcont">Loading content. Please wait...</span></div>
<div id="granDiv" style="visibility:hidden;">

resto del contenido dentro del DIV

<div>

El div de id="cargando", se usaría para colocar una advertencia al usuario, con la intención de que espere mientras se carga el contenido de la página. Fíjese que, obligatoriamente este div id="cargando", debe estar antes del div id="granDiv"

Para el aviso al usuario sobre la espera mientras se carga el contenido, puede usarse una imagen en vez de texto:

<div id="cargando" style="width: 100%; height: 500px; position: absolute; padding-top:20px; text-align:center">[i]</div>
<div id="granDiv" style="visibility:hidden;">

resto del contenido dentro del DIV

<div>

El class="fontloadingcont" es el siguiente (puede ser usado como CSS interna o en un archivo CSS externo y es opcional):

<style type="text/css">
.fontloadingcont {
font-size: 20px;
font-weight: bold;
}
</style>

Si no desea usar un estilo CSS sobre el texto, no será necesario que mantenga las etiquetas <span></span>

erdanblo

Tu lo que quieres entonces ¿qué es?, ¿qué no aparezca nada hasta que no esté 100% cargado?, ¿me equivoco?

TeTu

Claro, que cuando entren a la web le salga una imagen o un texo, y una vez cargada toda la web, la muestre de golpe.

Con el scrip que he puesto ahi me ha funcionado y derrepente se le ha ido la olla :S

guiye

Algo con en www.maxtrouks.com ?
ya no rula ***

TeTu

http://maxtrouks.hispahost.org/

var yourImages = new Array("img/cab.jpg","img/bg.jpg", "img/button.gif", "img/button.jpg", "img/confe.gif", "img/confe.jpg", "img/cyb.gif", "img/editbox.jpg", "img/one.gif", "img/two.gif", "img/three.gif", "img/four.gif", "img/five.gif", "img/six.gif", "img/seven.gif", "img/eight.gif", "img/01.gif", "img/02.gif", "img/03.gif", "img/04.gif", "img/05.gif", "img/06.gif", "img/07.gif", "img/08.gif", "img/iframe.jpg", "img/login.jpg", "img/m_left.jpg", "img/m_right.jpg", "img/margin.jpg", "img/maXtrouks.jpg", "img/maxtrouks_logo.jpg", "img/nophoto.jpg", "img/pho.gif", "img/sprdr.gif", "img/ten.gif", "img/10.gif", "img/transp.gif", "img/bg.jpg")

Segun este script, has de meter manualmente el nombre de todas las imagenes.

A ver si sale algo en google, ya que este no es eficaz al ser una pagina con un script que te lleva a otra pagina, y no una pagina con el script, no se si me explico.

TeTu

http://www.forosdelweb.com/showpost.php?p=785371&postcount=60

He encontrado eso, pero meto lo que es la web en sí en el segundo div y nada, se me queda la web en lo de "Loading content. Please wait..." carga todas las imagenes, pero una vez cargadas no las muestra...

¿Alguien sabria decirme porque?

Un saludo

EnZo

pega este codigo en un html y lo pruebas, creo que es lo que buscas

http://pastebin.com/280676

TeTu

Ostia lo acabo de probar rapido y creo que es eso justo lo que estoy buscando, mañana lo pruebo con la web que tengo y os comento, pero creo que si que es esto!

Muchisimas gracias enzo, te debo una.

EDIT

enzo funciona a la perfeccion, thx.

Usuarios habituales

  • TeTu
  • EnZo
  • guiye
  • erdanblo