Foros del Web » Programando para Internet » Javascript »

Precarga de Imágenes

Estas en el tema de Precarga de Imágenes en el foro de Javascript en Foros del Web. Hola, El siguiente código que muestro realiza la precarga de imágenes de una web, mostrando una página de cargando y mostrando una barra de precarga ...
  #1 (permalink)  
Antiguo 08/11/2005, 05:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 142
Antigüedad: 19 años, 1 mes
Puntos: 0
Precarga de Imágenes

Hola,

El siguiente código que muestro realiza la precarga de imágenes de una web, mostrando una página de cargando y mostrando una barra de precarga en la que cada cuadradito de la barra está simulando la precarga de una imagen.

Me gustaría saber si alguien puede ayudarme para cambiarlo a que lo que se muestre sea un porcentaje de la carga y no las imágenes. Alguien sabe hacerlo?

Muchas gracias.

El código es éste:

Código:
// Para configurar este JavaScript tienes que modificar 
// Las variables que se indican a continuacion


// URL de la pagina que se carga tras la precarga
var Desprespreload="index.html";

// Longitud total de la barra
var Longbarra = 150;

// Ancho de la barra
var Amplbarra = 15;

// si tienes imagenes en la pagina precarga.html que esten situadas
// por encima de la barra. Debes indicar cuantas tienes [0,1,2...]
var imagenesanteriors = 1;


// Indica aqui el enlace a las imagenes a precargar. El enlace
// debe referirse a la pagina "precarga.html". Puedes añadir
// todas las que desees.

var imagenes = new Array();

imagenes[0]="gif/image1.gif";
imagenes[1]="gif/image2.gif";
//Aquí irían las demás imágenes...




if (document.images){
	var cuadres = new Array();
	cuadres[0] = new Image(1,1);

	// imagen 1x1 del cuadro cuando aun no esta cargado
	cuadres[0].src = "img/precarga/gris.gif";	
	cuadres[1] = new Image(1,1);

	// imagen 1x1 del cuadro cuando aun ya esta cargado
	cuadres[1].src = "img/precarga/grana.gif";

//----------------------------------------
// 
//----------------------------------------

	var preimagenes = new Array();
	var fet = Math.floor(Amplbarra/imagenes.length);
	var contador = 0;
	var temporitzador;
      var carregat = new Array();
      var deixaample = Longbarra%fet;
} else {
	location.replace(Desprespreload);
}

function carga_imagenes() { 
	if (document.images){
        for (var i = 0; i < imagenes.length; i++) { 
                preimagenes[i] = new Image();
                preimagenes[i].src = imagenes[i];
        }
        for (var i = 0; i < preimagenes.length; i++) { 
                carregat[i] = false;
        }

        test_imagenes();
	}
}
function  test_imagenes() {
        if (contador == preimagenes.length) { 
    			clearTimeout(temporitzador);
                	location.replace(Desprespreload);
                	return;
        }
        for (var i = 0; i <= preimagenes.length; i++) {
                if (carregat[i] == false && preimagenes[i].complete) {
                        carregat[i] = true;
				real = contador+imagenesanteriors;
                        eval("document.images[" + real + "].src=cuadres[1].src");
                        contador++;
                }
        }
        temporitzador = setTimeout("test_imagenes()",10);
}
  #2 (permalink)  
Antiguo 08/11/2005, 07:08
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
http://www.forosdelweb.com/showpost....44&postcount=2
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #3 (permalink)  
Antiguo 08/11/2005, 08:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 142
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchas gracias Saruman, era justo lo que buscaba. Te lo agradezco enormemente.

Un saludo,

Leo.
  #4 (permalink)  
Antiguo 11/11/2005, 07:17
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
Código HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Cargador</title>
</head>
<body>
<script language="JavaScript">
 var isIE = false
 var isNav = false
 var isOpera = false
 var isOther = false
 isIE=navigator.appVersion.indexOf("MSIE")>0?true:false;
 isNav=navigator.appName=="Netscape"?true:false;
 isOpera=navigator.appName=="Opera"?true:false;
 if(!isIE&&!isNav&&!isOpera){isOther=true}
 
 function checkLoadStatus(){
  var preload=document.images.length
  var i=0;
  var iCounter=0;
  
  while(i < preload){
   if(document.images[i].complete||document.images[i].complete=="loaded"||document.images[i].complete==true||document.images[i].complete=="true"||document.images[i].complete=="done"){
    iCounter++
   }
   i++
  }
  
  document.getElementById("_loaded").innerText = parseInt(iCounter/preload*100)+"%";
  
  if(isIE||isOpera){document.all._red.style.width=parseInt(iCounter/preload*279)}
  else{document.getElementById("_red").style.width=parseInt(iCounter/preload*279)}
  
  if(iCounter<preload){
   var timeoutID = setTimeout("checkLoadStatus()",50)
  } else{
   document.getElementById("FullContent").style.visibility = "visible";
   document.getElementById("container").style.visibility = "hidden";
  }
 }
 
 function CanelarCarga() {
  document.getElementById("FullContent").style.visibility = "visible";
  document.getElementById("container").style.visibility = "hidden";
 }
</script>
<div id="FullContent" style="visibility:hidden;">
tu contenido HTML aqui
</div>

<div id="container" style="position:absolute; width:315px; height:325px; z-index:999;">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="315" height="310">
    <param name="movie" value="cargador.swf" />
    <param name="quality" value="high" />
 <param name="wmode" value="transparent" />
    <embed src="cargador.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="315" height="310"></embed>
  </object>
<table align="center" height="10" border="0" cellspacing="0" cellpadding="0" class="TablaSimple" style="color:#FFFFFF;">
  <tr>
    <td width="300" style="border:1px solid #FFFFFF;"><div ID="_red" style="width:0px; height:8px; z-index:10; overflow:hidden; background-color:#F0C805; margin:1px;"></div></td>
 <td style="padding-left:4px;"><div id="_loaded" style="font-weight:bold; color:#FFFFFF; font-size:10px;">0%</div></td>
  </tr>
  <tr>
   <td height="25" colspan="2" align="center" style="font-size:10px">Si la página no carga completamente, presione la tecla F5</td>
  </tr>
  <tr>
   <td height="30" colspan="2" align="center"><input type="button" value="Cancelar Carga" class="Botones" onclick="CanelarCarga()"/></td>
  </tr>
</table>
</div>
<script language="javascript">checkLoadStatus();</script>
</body>
</html> 

el cargador.swf es un movie en flash simulando el loading... puedes colocar tu logo y colocar la palabra cargando. es todo, lo demas es simple.

saludos
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.