Foros del Web » Creando para Internet » HTML »

Alternar dos imagenes al hacer click

Estas en el tema de Alternar dos imagenes al hacer click en el foro de HTML en Foros del Web. Hola a todos, os cuento, tengo una lista de elementos en los que al hacer click se despliega un pequeño texto, lo que quiero es ...
  #1 (permalink)  
Antiguo 11/06/2012, 09:35
 
Fecha de Ingreso: abril-2012
Ubicación: CIUDAD REAL
Mensajes: 33
Antigüedad: 12 años
Puntos: 0
Alternar dos imagenes al hacer click

Hola a todos, os cuento, tengo una lista de elementos en los que al hacer click se despliega un pequeño texto, lo que quiero es poner al principio de cada título un signo más y que al pinchar me salga el signo menos, como un explorador de windows.
He conseguido que al pinchar en el más salga el menos pero no que al pinchas en el menos vuelva a salir el más. Os pongo el código que utilizo

en el head:

<script type="text/javascript">
<!--
function FP_preloadImgs() {//v1.0
var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}
function FP_swapImg() {//v1.0
var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
elm.$src=elm.src; elm.src=args[n+1]; } }
}
function FP_getObjectByID(id,o) {//v1.0
var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
return null;
}
// -->
</script>

y en el body

<img id="img1" src="imagenes/signo_mas.png" onclick="FP_swapImg(1,1,/*id*/'img1',/*url*/'imagenes/signo_menos.gif')" width="10" height="10">

Espero podáis ayudarme

Gracias y un saludo
  #2 (permalink)  
Antiguo 11/06/2012, 09:54
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Alternar dos imagenes al hacer click

podrías usar un gif transparente y colocar como background el signo + o - según corresponda, y mediante jquery cambiar el CSS para hacer el cambio, utilizando addClass() y removeClass()

si necesitas un ejemplo me avisas para buscar algún ejemplo entre mis curiosidades que tal vez te pueda servir para ilustrar a lo que me refiero
  #3 (permalink)  
Antiguo 11/06/2012, 10:10
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: Alternar dos imagenes al hacer click

Hola:

No entiendo que tendrá que ver jquery y las clases, pero sin dudas los tiros van por javascript.

Un ejemplo: Inspector DOM... puedes fijarte en el código fuente, pero básicamente se trata de cambiar el estilo display entre none y block en las capas, y en la letra (+/-) entre none e inline.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 11/06/2012, 10:13
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Alternar dos imagenes al hacer click

perdón @caricatos tal vez no explique bien, solo quise decir que seria mas fácil de hacer con jquery

claro a mi humilde opinion
  #5 (permalink)  
Antiguo 12/06/2012, 14:31
 
Fecha de Ingreso: abril-2012
Ubicación: CIUDAD REAL
Mensajes: 33
Antigüedad: 12 años
Puntos: 0
Respuesta: Alternar dos imagenes al hacer click

Muchas gracias por las respuestas, lo que aparece en el enlace de Inspector DOM es lo que quería, probaré a adaptarlo en la web que estoy haciendo y ya os cuento.

Saludos,

Etiquetas: imagenes, javascript
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:01.