Foros del Web » Programando para Internet » Javascript »

Problemas programando una galería en Javascript.

Estas en el tema de Problemas programando una galería en Javascript. en el foro de Javascript en Foros del Web. Hola a todos, Estoy intentando programar en javascript la típica galería de imágenes en la que ves las fotos en miniatura y una foto grande ...
  #1 (permalink)  
Antiguo 13/11/2008, 14:34
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Problemas programando una galería en Javascript.

Hola a todos,

Estoy intentando programar en javascript la típica galería de imágenes en la que ves las fotos en miniatura y una foto grande justo encima, al pulsar en la miniatura esa misma foto pero más grande(otro archivo en realidad) se carga en la imagen grande y así con todas las miniaturas, es decir algo como lo de esta web pero en sencillo.

El código que tengo hasta ahora es este:

Código HTML:
<script type="text/javascript">
<!--
function mostrar(){
var ruta = document.im1.src;
document.imagengrande.src = "g" + ruta;

}
</script>

<div>
       <img src="imagenes/gim1.gif" alt="imagen 1" name="imagengrande" title="imagen 1" />
	<div class="imagenes" style="float:left">
	<a href="#" onclick="mostrar();"><img src="imagenes/im1.gif" name="im1" alt="imagen1"  /></a>
</div> 
La idea es que al pulsar en la imagen se active la función mostrar, y la imagen grande cambia por la versión grande "g" + ruta de esa foto, en este caso sería "gdv1.gif", en este momento sería la misma foto que la que ya está pero probandolo con otras imágenes tampoco funciona.

Si alguien puede darme alguna pista para arreglarlo se lo agradecería mucho.
  #2 (permalink)  
Antiguo 13/11/2008, 14:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problemas programando una galería en Javascript.

Es que como en tu src tienes "imagenes/imagen.ext" al añadirle el "g" buscaría en otra carpeta: "gimagenes/...", tienes la opción de crear esa carpeta y colocar las imágenes grandes allí, o usar un split para separar la carpeta del nombre del archivo.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/11/2008, 15:24
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Problemas programando una galería en Javascript.

Hola haga41

A ver si te sirve esto:

Código javascript:
Ver original
  1. function mostrar(){
  2. var ruta = document.im1.src;
  3. ruta = ruta.split('/');
  4. document.imagengrande.src = ruta[0]+'/g'+ruta[1]
  5. }

Saludos,
  #4 (permalink)  
Antiguo 13/11/2008, 16:07
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas programando una galería en Javascript.

Muchas gracias a los dos por responder tan rápido,

JavierB, he probado tu método y con unos ajustes que he tenido que hacerle porque tengo el sitio un poco caótico en local para las rutas va perfecto.

Lo único malo es que no me he dado cuenta de que esa función sólo vale para im1 es decir que tendría que crear un mostrar2 idéntico para im2, etc.

¿Esto se soluciona con el this o algo así no? He intentado mirar un poco pero no encuentro lo que quiero.

Ya lo he conseguido arreglar, al final ha quedado así:


<script type="text/javascript">
<!--
function mostrar(nombre){
var ruta = document.images[nombre].src;
ruta = ruta.split('/');
document.imagengrande.src = ruta[0]+'/'+ruta[1]+'/'+ruta[2]+'/'+ruta[3]+'/'+ruta[4]+'/'+ruta[5]+'/g'+ruta[6]
}
</script>

<div>
<img src="imagenes/gim1.gif" alt="imagen 1" name="imagengrande" title="imagen 1" />
<div class="imagenes" style="float:left">
<a href="#" onclick="mostrar('im1');"><img src="imagenes/im1.gif" name="im1" alt="imagen1" /></a>
</div>

Última edición por haga41; 13/11/2008 a las 16:42
  #5 (permalink)  
Antiguo 13/11/2008, 16:41
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: Problemas programando una galería en Javascript.

Hola:

Si le pasases el parámetro de la ruta de la imagen (o algo para obtenerla como por ejemplo el objeto this, pero esa idea es mejor implementarla abriendo la imagen grande, después de pinchar en la propia imagen,,,) sería fácil reutilizar el código.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 13/11/2008, 16:44
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: Problemas programando una galería en Javascript.

¡Je, je!... como si me hubieras leído el pensamiento.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 13/11/2008, 16:49
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas programando una galería en Javascript.

Pues sí, he estado haciendo pruebas con cosas que veía por ahí pero no acababa de pillarle el truco, de todas formas ¿cúal sería la diferencia haciendolo con "this"?
Hace años andaba más al día de Javascript y Actonscript y recuerdo que se usaba bastante pero ahora no lo recuerdo muy bien.

Saludos
  #8 (permalink)  
Antiguo 13/11/2008, 17:18
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: Problemas programando una galería en Javascript.

Hola:

Sobre this, si la llamada se hace desde la misma imagen, con el evento click (la mano de los enlaces se puede poner con estilos:

<img src="imagenes/gim1.gif" alt="imagen 1" title="imagen 1" onclick="mostrar(this)" style="cursor: pointer"/>

Para averiguar el atributo src, es directo...

function mostrar(imagen){
mi_src = imagen.src;
mi_src_array = mi_src.split("/");
mi_src_array[mi_src_array.length - 1] = "g" + mi_src_array[mi_src_array.length - 1];
document.imagengrande.src = mi_src_array.join("/");
}

De todos modos, al revisar el caso, también sería mejor, poner la ruta de parámetro, y la función sería trivial... incluso no habría que definir la función mostrar...

onclick="document.images.imagengrande.src = 'imagenes/gimi.gif'"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 16/11/2008, 12:45
 
Fecha de Ingreso: junio-2008
Mensajes: 145
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas programando una galería en Javascript.

Hola caricatos,

Muchas gracias por la explicación, más o menos la entiendo pero lo que más claro me ha quedado ha sido que haciendolo como dices en la última frase, es decir diciendo exactamente lo que quieres, te ahorras la función.

Una duda tonta que tengo ahora, que probablement tenga más que ver con accesibilidad y usabilidad, es como usar algo parecido a los anclas pero que sirva en Firefox ya que para que fuese más agradable la página puse un ancla justo antes del final del body: <a name="f"></a> y en los a href puse "#f" de forma que al pinchar en los enlaces en vez de cargar la página desde el principio, los carga justo donde estan. El problema es que Firefox, al menos en la versión que estoy probando: 3.04. ¿Hay alguna forma de decirle al Firefox que al pulsar vaya al final de la página?

Última edición por haga41; 16/11/2008 a las 12:50
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 18:13.