Foros del Web » Programando para Internet » Javascript »

Precarga Imagenes

Estas en el tema de Precarga Imagenes en el foro de Javascript en Foros del Web. Hola a todos, Hice un contador en el que los números son imágenes. Además con Jquery le he puesto un efecto de fadIn y fadeout ...
  #1 (permalink)  
Antiguo 03/10/2009, 10:22
 
Fecha de Ingreso: agosto-2008
Mensajes: 112
Antigüedad: 15 años, 8 meses
Puntos: 0
Precarga Imagenes

Hola a todos,

Hice un contador en el que los números son imágenes. Además con Jquery le he puesto un efecto de fadIn y fadeout para cuando se cambia de número el caso es que algunas veces se come un número, en vez de hacer la secuencia 4,3,2,1 hace 4,4,2,1 creo que es porque no le da tiempo a cargar la imagen del 3, pero no estoy seguro porque quizás debería no mostrar nada y no el numero 4 dos veces.

Os dejo el código a ver que veis.
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<title>Untitled Document</title>
		<script src="/jquery.js"></script>
<script>
	
		var i;
		var imagenes = new Array("numeros/0.png","numeros/1.png","numeros/2.png","numeros/3.png","numeros/4.png","numeros/5.png","numeros/6.png","numeros/7.png","numeros/8.png","numeros/9.png");
		var lista_imagenes = new Array();
		
		
		
			for(i in imagenes){
				lista_imagenes[i] = new Image();
				lista_imagenes[i].src = imagenes[i];
			
			}
		
		
	
		var seg2 = 0;
		var seg1 = 0;
		var hor3 = 0;
		var hor2 = 0;
		var hor1 = 0;
		var min2 = 0;
		var min1 = 0;		
		alert(lista_imagenes[2].src);
		function divide(i,dato){
			if (dato> 9) {
				aux = parseInt(dato / 10);
				res2 = Math.round(aux % 10);
				res1 = dato%10;
				switch(i){
					case 0:{seg2 =res2;
					seg1 = res1;break; }
					case 1:{min2 =res2;
					min1 = res1;break; }
					case 2:{
					aux = parseInt(dato / 100);
					hor3 = Math.round(aux % 10);
					res1 = dato%10;
					hor2 =res2;
					hor1 = res1;break; }
			}
		}
		else{
		switch(i){
		case 0:{seg2 =0;
		seg1 = (dato*10)/10;
		;break; }
		case 1:{min2 =0;
		min1 = (dato*10)/10;break; }
		case 2:{hor2 =0;
		hor3 = 0;
		hor1 = (dato*10)/10;break; }
		}
		}
		}
		function getFecha(){
		clock = new Date();
		seg = 60- clock.getSeconds();
		min = 60 - clock.getMinutes();
		aux = 10 - clock.getHours();
		dia = 14 - clock.getDate();
		hora= dia*24 + aux;
		if(seg==60){
		seg=0; }
		if(seg>0){
		min-=1;
		}
		if((min<0)&&(hora!=0)){
		min+=60;
		}
		if((min>0)&&(hora>=1)){
		hora-=1;
		}
		if (min<10) {
		bmin = "0"+min;
		}
		else{bmin=min;}
		if (seg<10) {
		seg = "0"+seg;
		}
		if(hora<10){
		hora="0"+hora;
		}
		if (min>=0){
		/*que_hora.text = hora;// hora+ ":"+ bmin+":"+seg;
		que_minuto.text = min;
		que_segundo.text = seg;*/
		}
		else
		{  }
		divide(0,seg); 
		divide(1,min);
		divide(2,hora);
		//alert(val);
		$('#segundos_1').fadeOut('fast',function(){
		$(this).attr('src',lista_imagenes[seg1].src);
		$(this).fadeIn('fast');
		});
		var ant = $('#segundos_2').attr('src'); 
		var act = "numeros/"+seg2+".png";
		if(ant!=act)
		$('#segundos_2').fadeOut('fast',function(){
		$(this).attr('src',lista_imagenes[seg2].src);
		$(this).fadeIn('slow');
		});
		ant1 = $('#horas_2').attr('src'); 
		act1 = "numeros/"+hor2+".png";
		if(ant1!=act1) 
		$('#horas_2').fadeOut('fast',function(){
		$(this).attr('src',lista_imagenes[hor2].src);
		$(this).fadeIn('slow');
		});
		ant = $('#horas_3').attr('src'); 
		act = "numeros/"+hor3+".png";
		if(ant!=act)
		$('#horas_3').fadeOut('fast',function(){
		$(this).attr('src','numeros/'+hor3+'.png');
		$(this).fadeIn('slow');
		});
		ant = $('#horas_1').attr('src'); 
		act = "numeros/"+hor1+".png";
		if(ant!=act)
		$('#horas_1').fadeOut('fast',function(){
		$(this).attr('src','numeros/'+hor1+'.png');
		$(this).fadeIn('slow');
		});
		ant = $('#minutos_2').attr('src'); 
		act = "numeros/"+min2+".png";
		if(ant!=act)
		$('#minutos_2').fadeOut('fast',function(){
		$(this).attr('src','numeros/'+min2+'.png');
		$(this).fadeIn('slow');
		});
		ant = $('#minutos_1').attr('src'); 
		act = "numeros/"+min1+".png";
		if(ant!=act)
		$('#minutos_1').fadeOut('fast',function(){
		$(this).attr('src','numeros/'+min1+'.png');
		$(this).fadeIn('slow');
		});
		setTimeout("getFecha()",1000); 
		}
		$(document).ready(function(){
		getFecha();

		});
</script>


	</head>
	<body>
		<div id="countdown">
<img id="horas_3" src="numeros/0.png"><img id="horas_2" src="numeros/0.png"><img id="horas_1" src="numeros/0.png"><img src="numeros/hora.png"><img id="minutos_2" src="numeros/0.png"><img id="minutos_1" src="numeros/0.png"><img src="numeros/minutos.png"><img id="segundos_2" src="numeros/0.png"><img id="segundos_1" src="numeros/0.png"> <img src="numeros/seg.png">
</div>
	</body>
</html> 
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 14:39.