Foros del Web » Programando para Internet » Javascript »

cambiar imagenes con un "click"

Estas en el tema de cambiar imagenes con un "click" en el foro de Javascript en Foros del Web. Antes de nada un saludo a todos los foreros interesados en el tema... Quiero cambiar una imagen en una pagina con un click sobre ella,y ...
  #1 (permalink)  
Antiguo 06/12/2010, 15:42
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
cambiar imagenes con un "click"

Antes de nada un saludo a todos los foreros interesados en el tema...

Quiero cambiar una imagen en una pagina con un click sobre ella,y volver a ver la anterior con otro click,y asi.....
tengo esto,pero no va mas que una vez:
tb. hay un cambio de color del <td> ,pero va igual...

<script>
var foto=new Array()
foto[0]=new Image()
foto[0].src="2.jpg"
.......
function cambia(caja){
caja.style.backgroundColor="yellow";
}
</script>
......
<td bgcolor=green onclick="cambia(this)"><img src="1.jpg" ></td>
<td bgcolor=red><img src="1.jpg" onclick="this.src=foto[0].src"></td>


hay alguna forma de hacerlo en ambos casos o en uno solo , para poder cambiar tantas veces como se "clickee" de color de fondo o de imagen????
he mirado un monton de javascripts , pero ninguno me soluciona esto de manera sencilla ( tengo varias tablas de 10 x 100 imagenes) y no quiero cargarlas todas "a mano"

lo mas dificil sera recordar en algun .js o .txt despues , las imagenes que han sido cambiadas...pero eso sera mi proximo tema si me ayudais con este...
gracias de antemano
  #2 (permalink)  
Antiguo 06/12/2010, 15:49
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: cambiar imagenes con un "click"

Haz una función así:
Código Javascript:
Ver original
  1. var src=['1.jpg','2.jpg'], contador=1;
  2. function cambiarImg(img){
  3.  img.src=src[contador];
  4.  contador=contador<src.length?contador++:0;
  5. }
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 06/12/2010, 16:25
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: cambiar imagenes con un "click"

gracias...lo he probado , pero no me va...
de todas formas no me vale,ya que tengo miles de fotos , y solo quiero hacer el cambio de foto original (cualquiera de las 1000) x "foto en negro" y viceversa...

es un album de "cromos" y quiero tachar los que tengo para ver los que me faltan y asi hacerme una idea mas "global" de mi coleccion...
  #4 (permalink)  
Antiguo 06/12/2010, 16:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: cambiar imagenes con un "click"

Puedes ponerlo así:
Código Javascript:
Ver original
  1. var imgs={};
  2. for(i=0;img=document.images[i];i++){
  3.  imgs[img.name]=img.src;
  4. }
  5. function cambiarImg(img){
  6.  img.src=img.src==imgs[img.name]?'black.jpg':imgs[img.name];
  7. }
Y tendrías que añadirle un nombre diferente a cada imagen.
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 06/12/2010, 18:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: cambiar imagenes con un "click"

gracias otra vez...me sigue sin funcionar...estoy de un espeso esta noche...
esto es la prueba...a lo mejor me falta alguna " , " nosé...mañana me pongo otra vez , aunque me tenga que recorrer todo el msdn de mocosoft...
Código Javascript:
Ver original
  1. <HTML>
  2. <HEAD>
  3. <script language="javascript">
  4. var imgs={};
  5. for(i=0;img=document.images[i];i++){
  6.  imgs[img.name]=img.src;
  7. }
  8. function cambia(img){
  9.  img.src=img.src==imgs[img.name]?'2.jpg':imgs[img.name];
  10. }
  11. </script>
  12. </HEAD>
  13. <BODY BGCOLOR="paleturquoise">
  14. <Table border=1 >
  15. <tr>
  16.     <td bgcolor="green" ><img src="6.jpg"onclick="cambia(this)" ></td>
  17.  
  18.     <td bgcolor=red><img src="3.jpg" onclick="cambia(this)"></td>
  19. </tr>
  20. </table>
  21. </body>
  22. </HTML>
...y como decian los barones....sigo buscando una escalera al cielo...
  #6 (permalink)  
Antiguo 07/12/2010, 08:05
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: cambiar imagenes con un "click"

Claro, porque si te das cuenta el código ese lo que hace es recopilar información de las imágenes del documento, pero se está ejecutando en el head, y en ese momento no existe ninguna imagen.
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 07/12/2010, 11:01
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: cambiar imagenes con un "click"

no me di cuenta de ese "fallo"gracias por responder...
lo he puesto al final del body y me imagino que me carga todas las fotos,pero al pasar un par de clics sobre ellas me dá una alternancia entre la "black.jpg" y la ultima cargada,no recupera su imagen inicial...aunque ya es un avance.
no se si se podria hacer un refresh() individual o algo asi

y el tema mas importante...como guardar en un texto los elementos que voy tachando(estoy pensando en FSO.createtextfile....llamado por la funcion cambiaimg)y lo mas dificil todavía ,al abrir mi coleccion.html que me cargue las fotos de los cromos "repes" en negro , osea abrir a la vez el HTML con la informacion metida en el TXT al lado .
hasta he pensado que mi solucion se haria mejor con alguna basedatos y un solo javascript que me rellene la pagina de html...pero estoy "pegado "en ese tema

pero todo por pasos...lo 1º es lo1º...sabes a que se puede deber la alternancia sólo entre las 2 fotos antes mencionadas???
como siempre...gracias por el apoyo


hoy necesito un pez...ya sé pescar (creo)
  #8 (permalink)  
Antiguo 07/12/2010, 13:45
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: cambiar imagenes con un "click"

¿Le estás poniendo un name diferente a cada imagen?
Saludos :D
__________________
" 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 11/12/2010, 05:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: cambiar imagenes con un "click"

no se lo ponia , por eso me cogia el ultimo...
les he asignado un name a cada foto , el mismo numero de foto y ahora todo va OK (menos mal de un programita mio en VB6 que hace lo que le pido , sino eran horas con el teclado)

ahora voy a intentar que se acuerde de las fotos que tengo "tachadas" en un ".txt" y que me las cargue al abrir el HTM...
si tengo alguna otra duda...por aqui estare...
GRACIAS , CRONOS 2 , por tu apreciable ayuda
  #10 (permalink)  
Antiguo 11/12/2010, 13:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 22
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: cambiar imagenes con un "click"

conseguido el 2º tema...GUARDAR Y RECUPERAR
voila coma ha quedado:
Código HTML:
Ver original
  1. <img src="1.jpg" name=leer onclick="leecambios()">
  2. <img src="2.jpg" name=aplicar onclick="aplicacambios()">
  3. <Table border=1 >
  4.  
  5. <tr>
  6.     <td><img src="fot/a/38185.jpg" name=33 onclick="cambia(this)"></td>
  7.     <td><img src="fot/a/47754.jpg" name=44 onclick="cambia(this)"></td>
  8.     <td><img src="fot/a/11753.jpg" name=11753 onclick="cambia(this)"></td>
  9.     <td><img src="fot/a/16587.jpg" name=16587 onclick="cambia(this)"></td>
  10.     <td><img src="fot/a/38185.jpg" name=38185 onclick="cambia(this)"></td>
  11.     <td><img src="fot/a/47754.jpg" name=44754 onclick="cambia(this)"></td>
  12. </tr>
  13. <script language="javascript">
  14. var numero={};
  15. for(i=0;img=document.images[i];i++){numero[img.name]=img.src;}
  16.  
  17. function cambia(img){img.src=img.src==numero[img.name]?'3.jpg':numero[img.name];}
  18.  
  19. function aplicacambios()
  20.    {
  21.     var numero={};
  22.     var fso = new ActiveXObject("Scripting.FileSystemObject");
  23.     var a = fso.CreateTextFile("F:/XAPAS/a3.txt", 2);
  24.      for(i=0;img=document.images[i];i++)
  25.       {numero[img.name]=img.src;
  26.       a.WriteLine( numero[img.name]);
  27.       }
  28.     a.Close();
  29.    }
  30.  
  31. function leecambios()
  32.    {
  33.     var fso = new ActiveXObject("Scripting.FileSystemObject");
  34.     var abc = fso.OpenTextFile("F:/XAPAS/a3.txt", 1);
  35.      for(i=0;img=document.images[i];i++)
  36.       {
  37.        var jjj=abc.ReadLine();
  38.        img.src=jjj;
  39.       }
  40.     abc.Close();
  41.    }
Y COMO ME QUEDA EL TXT
Código HTML:
Ver original
  1. file:/F:/XAPAS/1.jpg
  2. file:/F:/XAPAS/2.jpg
  3. file:/F:/XAPAS/fot/a/38185.jpg
  4. file:/F:/XAPAS/fot/a/47754.jpg
  5. file:/F:/XAPAS/fot/a/11753.jpg
  6. file:/F:/XAPAS/fot/a/16587.jpg
  7. file:/F:/XAPAS/3.jpg
  8. file:/F:/XAPAS/3.jpg


que facil es programar con ayuda desinteresada y
que facil deberia ser controlar "espacios aereos" por menos de 300.000 €
  #11 (permalink)  
Antiguo 11/12/2010, 21:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 66
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: cambiar imagenes con un "click"

Prueba con ese script, yo lo e probado y funciona bien, e puesto una tercera imagen para volver a la imagen inicial:

Código:
<script language="JavaScript" type="text/javascript">
<!--
var foto=new Array()
var which=0

foto[0]="fondo.jpg"
foto[1]="fondo2.jpg"

function cambia(caja){ 
caja.style.backgroundColor="yellow";
}

function backward(){
if (which>0){
window.status=''
which--
document.images.imagen.src=foto[which];
}
}

function forward(){
if (which<foto.length-1){
which++
document.images.imagen.src=foto[which]
}
else window.status='End of gallery'
}
//-->
</script>
<td bgcolor=green onclick="cambia(this)"><img src="2.jpg"></td>
<td bgcolor=red><img name="imagen" src="1.jpg" onclick="forward()"></td>
<td bgcolor=blue><img src="3.jpg" onclick="backward()"></td>

Etiquetas: imagenes
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 20:30.