Foros del Web » Programando para Internet » Javascript »

Cambiar fondo de una tabla cada 10 segundos

Estas en el tema de Cambiar fondo de una tabla cada 10 segundos en el foro de Javascript en Foros del Web. Hola, gente. Necesito de su ayuda para un trabajo que estoy haciendo. Dada una tabla como esta: Código HTML: <table align= "center" width= "980" cellpadding= ...
  #1 (permalink)  
Antiguo 24/03/2012, 17:11
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 16 años, 5 meses
Puntos: 3
Pregunta Cambiar fondo de una tabla cada 10 segundos

Hola, gente.
Necesito de su ayuda para un trabajo que estoy haciendo.
Dada una tabla como esta:

Código HTML:
<table align="center" width="980" cellpadding="0" cellspacing="0" border="0" background="imagen_fondo.jpg">
   <tr>
      <td width="490" height="440">hola mundo!</td>
   </tr>
</table> 
Necesito que la imagen de fondo de la tabla, con nombre imagen_fondo.jpg, automáticamente cambie cada 10 segundos por otras imágenes de idéntico tamaño que se encuentran en el mismo directorio.

Sabía hacerlo con una etiqueta <div> y algo de código javascript, pero al tratarse del fondo de una tabla, no tengo idea de como hacerlo.

Podrán ayudarme?
Muchas gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 24/03/2012, 17:45
 
Fecha de Ingreso: julio-2009
Ubicación: La Plata
Mensajes: 233
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Cambiar fondo de una tabla cada 10 segundos

Podrías hacerlo de dos maneras:
-miTable.setAttribute("background","miImagen.jpg")
-miTable.style.background="url(miImagen.jpg)"

No estoy seguro de que funcionen tal cual te las planteo, pero si les buscas un poquitín la vuelta te puede funcionar de una manera u otra.Salu2
  #3 (permalink)  
Antiguo 24/03/2012, 18:53
Avatar de pabloe9k  
Fecha de Ingreso: julio-2008
Ubicación: Argentina
Mensajes: 190
Antigüedad: 16 años, 5 meses
Puntos: 3
Pregunta Respuesta: Cambiar fondo de una tabla cada 10 segundos

Cita:
Iniciado por pistonasos Ver Mensaje
Podrías hacerlo de dos maneras:
-miTable.setAttribute("background","miImagen.jpg")
-miTable.style.background="url(miImagen.jpg)"

No estoy seguro de que funcionen tal cual te las planteo, pero si les buscas un poquitín la vuelta te puede funcionar de una manera u otra.Salu2
Podrás pasarme el código completo, por favor?
De JavaScript no se nada.
Gracias.
  #4 (permalink)  
Antiguo 25/03/2012, 14:54
 
Fecha de Ingreso: junio-2011
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Cambiar fondo de una tabla cada 10 segundos

Hola,

Yo estoy intentando hacer algo muy parecido. Quiero que, entre 6 divs, solo haya uno show a la vez, y que dure X segundos show, y luego pase a hide y se ponga otro a show. No consigo el delay ese de los X segundos...

Saludos
  #5 (permalink)  
Antiguo 27/03/2012, 20:30
 
Fecha de Ingreso: julio-2009
Ubicación: La Plata
Mensajes: 233
Antigüedad: 15 años, 5 meses
Puntos: 8
Respuesta: Cambiar fondo de una tabla cada 10 segundos

Acá hice un script que te va a servir pabloe9k. No se si le servirá a iasnob porque no entiendo bien que quiere hacer. Lo probé en ópera, iceweasel, chrome y funciona:

Código HTML:
Código:
<html>
	<head>
		<script languge="JavaScript" type="text/javascript" src="./Cambia Fondo Tabla Cada 10 Seg.js"></script>
	</head>
<body>
	<table name="miTabla" align="center">
		<tbody>
			<tr>
				<td><i>Hola Mundo!!</i></td>
			</tr>
		</tbody>
	</table>
</body>
</html>
Código JS:
Código:
fondoDin=function(ele,fondos)
{
	this.key="fondoDin"+new Date().getTime()+new Date().getMilliseconds()
	if(typeof(obj)=="undefined")
		{
			obj=new Array()
		}
	obj[this.key]=this
	this.cont=0
	this.ele=ele
	this.conf=new Array()
	this.conf.extra=""
	this.conf.fondos=fondos
	this.conf.retardo=10000
	this.conf.bucle=1
	this.detona=function()
	{
		this.ele.style.background='url("'+this.conf.fondos[this.cont]+'")'
		if(this.cont==this.conf.fondos.length)
			{
				if(this.conf.bucle)
					{
						this.cont=0
					}
				else
					{
						eval(this.conf.extra)
						return 0
					}
			}
		else
			{
				this.cont++
			}
		this.timer=setTimeout("obj['"+this.key+"'].detona()",this.conf.retardo)
	}
	this.aborta=function()
	{
		if(typeof(this.timer)!="undefined")
			{
				clearTimeout(this.timer)
			}
	}
}
Bueno, te paso a explicar el funcionamiento:
Por cada elemento al que le quieras hacer un fondo dinámico (ya sea una tabla, un div o lo que fuere) tenés que crear un objeto del tipo fondoDin pasándole como parámetro el elemento al que se le quiere aplicar el efecto y un array con el src de las imágenes que tiene que mostrar el script.
Ejemplo:
Código:
imgArr=new Array("http://img00","http://img01","http://img02","http://img03","http://img04")
miTablaDin=new fondoDin(document.getElementsByName("miTabla")[0],imgArr)
Después de creado el objeto se le pueden modificar algunas configuraciones así:
Código:
miTablaDin.conf.retardo=10000  //El intervalo de tiempo entre cada fondo, se mide en milisegundos.1000 milisegundos= 1 segundo
miTablaDin.conf.bucle //Cualquier valor distinto de 0 indica que si terminó de recorrer todos los fondos empiece denuevo por el primero y así sucesivamente.En caso de 0 al terminar de recorrer las imegenes fondo se para el efecto.
this.conf.fondos //Para especificar otro array con otros fondos.
Entonces, cuando se desee comienza el efecto:
Código:
miTablaDin.detona()
Y cuando se desee se para (si es que no se paró antes):
Código:
miTablaDin.aborta()
Bueno, una precaución a tomar para que siempre funcione el script es NO especificar el fondo de la tabla en la hoja de estilos , sino que se debe especificar con JS:
Código:
document.getElementsByName("miTabla")[0].style.background="url('http://Ruta/a/la/imagen.jpg')"
Suerte.Cualquier duda con el script consultame.

PD:No lo probé en explorer porque uso linux.

EDITO:Por el tema de los directorios no sabría como hacerlo y no se si se puede hacer con JS.Capaz que se puede con ajax. Igualmente, si manejás php, seguramente puedas agregarle a la web un <script></script> con una variable del tipo Array con todas las imágenes del directorio.Así entonces en JS le pasás la variable al objeto y listo.

Una funcionalidad que me olvidé de nombrar:
Si es que se eligió un bucle finito , se puede indicar alguna acción extra que se ejecutará al terminar el bucle. Por ej:
Código:
miTablaDin.config.extra="window.console.log('Se han acabado los fondos a mostrar')"
Avisame si te funcionó.Salu2

Última edición por pistonasos; 28/03/2012 a las 17:50

Etiquetas: cada, segundos, tabla
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 10:00.