Foros del Web » Programando para Internet » Javascript »

Como cambiar una imagen dinamicamente?

Estas en el tema de Como cambiar una imagen dinamicamente? en el foro de Javascript en Foros del Web. Hola, como puedo cargar varias imagenes por medio de javascript y cambiar de imagen dependiendo de condiciones que yo establezca sin tener que cargar las ...
  #1 (permalink)  
Antiguo 29/07/2011, 21:02
 
Fecha de Ingreso: junio-2011
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 7
Como cambiar una imagen dinamicamente?

Hola, como puedo cargar varias imagenes por medio de javascript y cambiar de imagen dependiendo de condiciones que yo establezca sin tener que cargar las imagenes cada vez que las cambie?
  #2 (permalink)  
Antiguo 30/07/2011, 07:07
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como cambiar una imagen dinamicamente?

Puedes tenerlas todas en el HTML e ir cambiándoles el display según convenga, aunque creo que si la imagen tiene display:none no se carga en algunos navegadores, así que puedes darle un tamaño de 1 x 1 px o algo así, y en el onload de cada imagen la ocultas (por ejemplo).
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 30/07/2011, 08:21
 
Fecha de Ingreso: junio-2011
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Como cambiar una imagen dinamicamente?

Gracias, ya se dos tecnicas para hacerlo, pero lo que me gustaria hacer es cambiar la imagen mediante DOM.

Se puede?
  #4 (permalink)  
Antiguo 30/07/2011, 08:35
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como cambiar una imagen dinamicamente?

Por poder se puede, pero tiene que ir cambiando el src, y la primera vez que se cambia tiene que cargarse la imagen, a no ser que uses un objeto Image en JS, pero sigo viéndolo innecesario. Preferiría hacerlo de la otra manera, pero como veas.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #5 (permalink)  
Antiguo 30/07/2011, 16:42
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: Como cambiar una imagen dinamicamente?

Hola kafok Bueno lo que yo haría en tu caso sin tanto rollo es utilizar un Array...
en el cual almaceno mis imagenes... (aclaro... esto es muy util si conoces el número de imágenes que quieres mostrar)... si no conoces el número de imágenes puedes utilizar otro método... El array seria del tipo:

Código Javascript:
Ver original
  1. var ArrImages=['image1.jpg', 'image2.jpg', 'image3.jpg', 'imageN.jpg'];

una vez que tengas tu array... lo puedes manipular como quierass.. mostrando la imagen que quieras dependiendo te tus necesidades...

por ejemplo...

Código Javascript:
Ver original
  1. var ElapsedTime = 10;  //definimos el tiempo en segundos...
  2. var Counter = 0; //definimos un contador para las imágenes...
  3.  
  4. //mediante el uso de SetInteval haceos que la imagen cambien cada 10 segundos..
  5. //SetInterval ejecutara la funcion CHANGE_IMAGE() cada 10 segundos...
  6. //ElapsedTime se multiplica por 1000 por que el valor que recibe setInterval debe ser en ms.
  7.  
  8. setInterval('CHANGE_IMAGE()', (ElapsedTime * 1000));
  9.  
  10. function CHANGE_IMAGE(){
  11.     Counter++;
  12.     var NewContent = document.getElementById="NuevoContenido";
  13.     NewContent.innerHTML='<img src="image'+Counter+'.jpg" />';
  14. }

El código anterior lo que hará es cambiar tus imégenes cada 10 segundos....
("Aclaro... el código es meramente un ejemplo para que puedas tal vez darte una idea de lo que querias... funciona.. pero aún le falta trabajarlo un poco, por ejemplo ponerle controladores de eventos... por ejemplo en el caso del contador al llegar a 4 producirá error debido a que la imágen 4 no existe.. entre otros")

Espero que te sea de utilidad... :3

SALUDOS y ÉXITO...
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #6 (permalink)  
Antiguo 31/07/2011, 05:10
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como cambiar una imagen dinamicamente?

Cita:
Iniciado por Hugo_Euan
El código anterior lo que hará es cambiar tus imégenes cada 10 segundos....
Estoy seguro de que ese código no funcionará tal y como está, porque a simple vista veo un error y un fallo (que no es lo mismo), además del hecho de que las imágenes estarán rotas.
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 31/07/2011, 12:50
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: Como cambiar una imagen dinamicamente?

jejeje.... me perdí con lo de las imagenes rotas...
tal vez te refieres a que en el array tiene indexaciones del tipo "image1.jpg"
y la invocación la hago tipo image + Counter + jpg
y debió ser ArrImages[Counter]

que descuido enorme de mi parte....
gracias por tu aclaración... y si ese no fue el error o el fallo.. hazmelo saber jeje

Saludos y Exito...
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #8 (permalink)  
Antiguo 31/07/2011, 17:57
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Como cambiar una imagen dinamicamente?

Más allá de declarar el array y no usarlo, que también, yo me refería a esto:
Código:
var NewContent = document.getElementById="NuevoContenido";
, a esto:
Código:
setInterval('CHANGE_IMAGE()', (ElapsedTime * 1000));
y a esto:
Código:
NewContent.innerHTML='<img src="image'+Counter+'.jpg" />';
1) Creo que está bastante claro el SyntaxError
2) No uses un string en setInterval/Timeout! Usa el handler!
3) Mientras "image" + Counter + ".jpg" exista, no hay problema; pero creo que "image4365.jpg" no existirá, y llegará un momento en que Counter llegue a ese número. A lo que me refiero es que no le pones un tope a Counter (error). Te recomiendo el operador %
Código:
NewContent.innerHTML='<img src="image' + (Counter % images.length) + '.jpg" />';
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #9 (permalink)  
Antiguo 31/07/2011, 19:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Como cambiar una imagen dinamicamente?

Cita:
Iniciado por kafok Ver Mensaje
...pero lo que me gustaria hacer es cambiar la imagen mediante DOM.

Se puede?
¿Qué sabes sobre el DOM...?

La opción de tener las imágenes ocultas creo que es una buena idea: Javascript: rollover.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 09/09/2011, 11:09
Avatar de Hugo_Euan  
Fecha de Ingreso: abril-2011
Ubicación: Mérida, Yucatán, México
Mensajes: 193
Antigüedad: 13 años
Puntos: 71
Respuesta: Como cambiar una imagen dinamicamente?

Cita:
Iniciado por _cronos2 Ver Mensaje
Más allá de declarar el array y no usarlo, que también, yo me refería a esto:
1) Creo que está bastante claro el SyntaxError
Código:
var NewContent = document.getElementById="NuevoContenido";
wooo.. wo.. woooww.. que error en getElementById.... ya caigo.. gracias ....

Cita:
Iniciado por _cronos2 Ver Mensaje
, a esto:
2) No uses un string en setInterval/Timeout! Usa el handler!
Código:
setInterval('CHANGE_IMAGE()', (ElapsedTime * 1000));
El uso de un string dentro de la rutina setInterval es totalmente válido... no es ningún error o fallo... en realidad... su sintaxis de uso esta definida de esa manera... que los exploradores evolucionan permitiendo nuevos metodos es distinto...

Cita:
Iniciado por _cronos2 Ver Mensaje
y a esto:
Código:
NewContent.innerHTML='<img src="image'+Counter+'.jpg" />';
3) Mientras "image" + Counter + ".jpg" exista, no hay problema; pero creo que "image4365.jpg" no existirá, y llegará un momento en que Counter llegue a ese número. A lo que me refiero es que no le pones un tope a Counter (error). Te recomiendo el operador %
Código:
NewContent.innerHTML='<img src="image' + (Counter % images.length) + '.jpg" />';
Saludos (:
amm.. y pues.... lo que tu dices del tope estaba previsto... por esa razón se hizo la aclaracion al final de primer post...

Cita:
Iniciado por Hugo_Euan Ver Mensaje
("Aclaro... el código es meramente un ejemplo para que puedas tal vez darte una idea de lo que querias... funciona.. pero aún le falta trabajarlo un poco, por ejemplo ponerle controladores de eventos... por ejemplo en el caso del contador al llegar a 4 producirá error debido a que la imágen 4 no existe.. entre otros")
Saludos y Exito....
__________________
Se acepta Karma (:

Si Dios con nosotros, quien contra nosotros !!
  #11 (permalink)  
Antiguo 09/09/2011, 11:36
Avatar de rafa_yael  
Fecha de Ingreso: mayo-2010
Ubicación: Zapotlanejo, Mexico
Mensajes: 54
Antigüedad: 14 años
Puntos: 4
Respuesta: Como cambiar una imagen dinamicamente?

Cita:
Iniciado por kafok Ver Mensaje
Hola, como puedo cargar varias imagenes por medio de javascript y cambiar de imagen dependiendo de condiciones que yo establezca sin tener que cargar las imagenes cada vez que las cambie?
Nesecitas saber las condiciones para definir el codigo. Acabo de ver un codigo que va asi...



Código Javascript:
Ver original
  1. window.onload = function (){
  2.    
  3.    
  4. var SrcDeTuImg = document.getElementById('logo');
  5. var fecha  = new Date();
  6. var mes    = fecha.getMonth()+1;
  7. var diaMes = fecha.getDate();
  8. var hora   = fecha.getHours();
  9. var cont   = diaMes+''+mes;
  10.  
  11.  
  12.  
  13. if (cont == 99){
  14.      if (hora>0&&hora<13){
  15. SrcDeTuImg.src ='imagenes/2.jpg';
  16.   }
  17. }
  18. }//fin de la funcion

Dada una fecha y hora, puedes cambiar la imagen. Pero no te recomiendo cargar todas las imagenes de un solo jalon. Suponiendo que hagas una galeria con las imagenes. Pues retrasaria la carga. Seria mejor img por img.

Espero que te haya entendido bien.

Etiquetas: Ninguno
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 15:26.