Ir al contenido principal

Galería de Imágenes Simple, con Javascript y CSS

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

¡Hola! Ya extrañaba escribir en mi blog. Vuelvo con esta genial galería de imágenes que es muy fácil de insertar y es súper simple.


Sólo es necesario insertar el HTML, y decorarlo un poco con CSS, veamos:
<div id="galeria">
<div id="galeria_imagen">
<img id="imgGaleria" src="URL-IMAGEN-POR-DEFECTO" /></div>
<div id="galeria_miniaturas">
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-1" />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-2" />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-3" />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-4" />
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-5" />
</div>
</div>

Recuerda que para agregar más miniaturas, y al mismo tiempo, otra imagen, sólo pega lo siguiente antes del penúltimo </div>
<img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src" src="URL-IMAGEN /> 

Continuemos con el CSS
#galeria, #galeria * {box-sizing:border-box}
#galeria {
border: 1px solid #EAEAEA;  /* Borde de la galería */
padding: 10px;
padding-bottom: 0;
background: white;  /* Fondo de la galería */
width: 410px;  /* Ancho de la galería */
}
#galeria_miniaturas {
display: table;
margin: 0 auto;
}
#imgGaleria {
border: 1px solid #F2F2F2;  /* Borde de la imagen */
padding: 3px;
width: x/* Ancho de la imagen */
height: x/* Alto de la imagen */
}
.miniatura {
width:  60px;  /* Ancho de las miniaturas */
height:  60px;  /* Alto de las miniaturas */
float: left;
cursor: pointer;
padding: 5px;
margin: 10px 5px;
}
.miniatura:hover {
opacity:.8;   /* Opacidad */
}
.miniatura:active {
opacity:1;
}

Eso sería todo lo necesario para poner en marcha esta galería. ¡Hasta la próxima idea!
Invitame un café en cafecito.app

Comentarios

  1. Muy buena la Galería, es lo que andaba buscando, algo simple y bien explicado.
    Quisiera saber si hay alguna forma de agregar más fotos en miniatura y avanzar con una flecha u algo así. Con el ejemplo, si nos exedemos en el ancho, las miniaturas van quedando debajo.

    Muchas Gracias !!!

    ResponderEliminar
    Respuestas
    1. Hola Leandro. Lamento mucho hacerte esperar para una respuesta, es que he estado muy ocupado estas últimas semanas.
      Para agregar más miniaturas, puedes volver a revisar que ya lo expliqué como. Y si ves que no alcanza el lugar para que queden todas las miniaturas en fila sólo debes aumentar el ancho de la galería, que puedes encontrar en la parte de estilos del código. En el ejemplo encuentras width:410px puedes aumentar el valor para hacer más ancha la galería. Y si ves que la imagen maximizada queda un poco pequeña luego de los cambios, también puedes cambiar el alto y el ancho de ésta, cambiando los valores representados con unas X.
      En último lugar quedaría el asunto de las flechas. Yo no tengo tantos conocimientos en Javascript para poder controlar estas cosas así que lamento no poder solucionarte esto. Pero aquí te dejo esta otra alternativa de galería que también es bastante simple y fácil de controlar. Saludos, Leandro y gracias por dejar tu opinión.

      Eliminar
  2. hola lucas, tengo todo copiado pero no se me ejecuta el javascript, es decir, clicko pero no veo las fotos como tu lo tienes... porque puede ser?

    ResponderEliminar
    Respuestas
    1. Quizá porque no repetiste el url de la imagen donde dice: onclick="javascript:document.getElementById('imgGaleria').src='URL-IMAGEN-1';". Ésa es la parte que se necesita para que funcione el mecanismo. Suerte ;)

      Eliminar
  3. por fin encuentro una manera sencilla de aplicar una galeria con css y xhtml. Saludos

    ResponderEliminar
  4. Excelente sos un capo, no cabe duda. Muchas gracias hasta que encuentro algo simple y preciso sin tanto lio. Gracias!!!!!!!!!!!!

    ResponderEliminar
    Respuestas
    1. Gracias, MI NOMBRE NO IMPORTA! La idea era hacerlo simple y fácil de entender para poder editarlo. Saludos y gracias por visitar BlogDesign :)

      Eliminar
  5. Hola... esto es lo que estoy buscando, pero quiero la galería para mis entradas....
    es sencilla la instalación, solo que no veo donde debo colocar los códigos....
    osea debajo de que linea? si en la edición de la plantilla o en la edición html de la entrada.... Saludos...

    ResponderEliminar
    Respuestas
    1. Lo que que te conviene, Jacky, es colocar el HTML en el editor de las entradas donde tu dices, y el CSS (que son los estilos) puedes ponerlos en el editor de la plantilla antes de la línea ]]></b:skin>. Espero que lo puedas aplicar :) Saludos

      Eliminar
  6. Hey cuanto tiempo :) Un truco: En vez de poner dos veces las urls, puedes poner this.src (sin entrecomillar). Esto hará que sólo se tengan que cambiar una vez ;)

    ResponderEliminar
    Respuestas
    1. Sorprendente, Emilio! Gracias por tu aporte. Actualizaré la entrada para que todos puedan acceder a este truco :)

      Eliminar
  7. Anónimo17/1/13

    HAY FORMA DE AGREGAR UNA DESCRIPCION A CADA FOTO??.. SALUDOS... GRACIAS!...

    ResponderEliminar
  8. CUANDO VISUALIZO UNA IMAGEN VERTICAL, SE EXTIENDE EL ALTO Y TENGO QUE BAJAR CON EL SCROLL PARA VER LAS OTRAS MINIATURAS, ESCOJO OTRA FOTO Y LUEGO TENGO QUE SUBIR PARA VER LA FOTO... COMO PUEDO SOLUCIONAR??? Y LO DE AGREGAR DESCRIPCION A CADA FOTO TAMBIEN.. SALUDOS.. GRACIAS...

    ResponderEliminar
  9. Hola. Para poder agregar una descripción será mejor que utilices otro tipo de galería, ya que esta es una galería simple y lo mejor sería no aplicar tantas cosas. Con respecto a lo de la imagen vertical, podrías encerrar cada <img> de las miniaturas en un <a> que hará un salto hacia la galería cada vez que se seleccione una minuatura. Quedadía algo como esto:
    <a href='#galeria'><img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src="URL-IMAGEN-1" /></a>
    Espero que lo puedas solucionar. Saludos

    ResponderEliminar
  10. Cecilia16/3/13

    Realmente muy bueno! hace un tiempo quise hacer uno y encontré todos bastante complicados para los que tienen pocos conocimientos, encima me agregaba muchos problemas al código. Pero la verdad que esta galería es sencilla de hacer, rápida y fácil de entender para hacer los cambios necesarios para personalizarla.
    Gracias por tu aporte!

    ResponderEliminar
  11. Anónimo21/3/13

    Me gustaría preguntar si se puede modificar de alguna forma la imágenes en miniatura para que no se vean deformadas
    Agradecería tu respuesta

    ResponderEliminar
    Respuestas
    1. Hola. La causa por la que se deforman las miniaturas es porque se les da una forma cuadrada con width: 60px; /* Ancho de las miniaturas */
      height: 60px; /* Alto de las miniaturas */. Para que tengan forma rectangular, elimina width:60px. De esta manera el ancho de las miniaturas será relativo.

      Eliminar
  12. Hola, muy bueno y practico el codigo. lo que yonecesito a esto es pasarle el nombre de las imagenes por variable de php! se pude?

    ResponderEliminar
  13. Anónimo31/3/13

    Muy buen ejercicio y desde ya mis màs cordiales saludos al señor Lucas Maidana... Un placer poder hacerlo de forma tan fàcil. Muchisimas Gracias !!!

    ResponderEliminar
  14. Anónimo5/4/13

    Saludos Lucas, muchas gracias por compartir tus conocimientos y tu tiempo, un ejemplo sencillo pero muy efectivo.

    ResponderEliminar
  15. disqus_f2HqE7s9jP17/5/13

    Hola lo he implementado desde cero en dreamwaeaver y va perfecto, pero lo implemento en wordpress y para que se vean las miniaturas en filas y columnas tengo que cambiar la propiedad display: table a display: inline en #galeria_miniaturas. (Si no se queda en un única columna)
    Aún así, que es lo mas extraño de todo, en la primera fila, desde la primera miniatura a la última aparecen desdecendentemente, es decir, la primera aparece bien la segunda un poco mas baja, la tercera mas baja todavía y así hasta la última. No me había pasado nunca. He tocado el padding, el margin y en general casi todo, pero nada. Sabéis que propiedad esta relacionada con esta anomalía?

    Muchas gracias.

    ResponderEliminar
  16. LucasMaidana21/5/13

    Hola. La causa de lo saltos que dices puede ser la propiedad display: inline-block. Visita este post de Kseso Css y a ver si lo solucionas

    ResponderEliminar
  17. Anónimo31/5/13

    Gracias LucasMaidana! Justo era eso!

    ResponderEliminar
  18. Anónimo6/6/13

    Gracias muy buen aporte ;)

    ResponderEliminar
  19. Hola!
    Muy buena la galería! solo tengo un problema, en Explorer no me funciona, se ve pero no cambia a la foto que se seleccione.

    Saludos y gracias de antemano!

    ResponderEliminar
  20. Anónimo14/7/13

    Muchas gracias por la explicación. Es muy sencilla de manejar. Un saludo.

    ResponderEliminar
  21. Estimado, estoy intentando pero me muestra todas las imagenes de la galeria hacia abajo.

    ResponderEliminar
  22. hola queria saber de que forma se puede hacer para que la galería vaya cambiando las imagenes por si sola , no se si me explico bien quería saber como hacer para que las imagenes que carguen vallan cambiando cada cierto tiempo

    ResponderEliminar
  23. hol muchas gracias de antemano

    solo tengo una duda
    si quiero poner la misma galeria en la misma pagina si salen pero al momento de darles click a las imagenes estas no cambian solo se aplican los cambios a la primera galeria. :S

    yo quiero poner en la misma pagina mas de 2 galerias sera que me puedas echas la mano

    adjunto mi correo
    aloeza23@gmail.com

    ResponderEliminar
  24. quigalFbus-go Jasmine Vang click
    rangproplargpu

    ResponderEliminar

Publicar un comentario

Más leído

Ventana flotante con botón cerrar

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

Esto será algo muy útil cuando debas dejar algún mensaje o aviso para tus lectores. Se trata de una ventanita, con apariencia similar a las de Windows, que es flotante y tiene la opción de cerrar con un efecto fade utilizando un botón. Insertarla es muy simple, sólo pega este código en un gadget HTML/Javascript y puedes cambiar algunos valores para personalizar la ventana a tu gusto. <div id='ventana-flotante'>    <a class='cerrar' href='javascript:void(0);' onclick='document.getElementById(&apos;ventana-flotante&apos;).className = &apos;oculto&apos;'>x</a>    <div id='contenedor'>        <div class='contenido'> Aquí va el mensaje.        </div>    </div> </div> <style> #ventana-flotante { width: 360px;   /* Ancho de la ventana */ height: 90px;   /* Alto de la ventana */ background: #ceffad;   /* Color de fondo */ position: fixed; top: 200 px; left: 50%;

Tabs, menú de contenidos con pestañas. Versión CSS

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

Seguro conocerás este sistema de pestañas, que nos permite mostrar de manera alternativa distintos contenidos en un mismo espacio. Hay distintas versiones como con jQuery , o utilizando CSS, más específicamente la pseudoclase :target . Aquí veremos como obtener un resultado similar, pero utilizando la pseudoclase :checked. Comencemos con la estructura. <div id="contenedor">     <input id="tab-1" type="radio" name="radio-set" class="tab-selector-1" checked="checked" />     <label for="tab-1" class="tab-label-1"> Pestaña1 </label>         <input id="tab-2" type="radio" name="radio-set" class="tab-selector-2" />     <label for="tab-2" class="tab-label-2"> Pestaña2 </label>         <input id="tab-3" type="radio" name="radio-set" class="tab-selector-3" />    

Efecto biselado con CSS

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

Utilizando CSS, podemos crear un efecto de biselado para utilizar en botones, mensajes, contenedores o lo que se les ocurra. Veremos 2 formas de aplicar este efecto, una utilizando bordes y otra implementando la propiedad box-shadow . Con los bordes, encontraremos una forma más tradicional que nos permite que los bordes inferior y lateral derecho sean más oscuros simulando relieve. HTML <div class="biselado"> Texto </div> Hola, soy un cuadro con outset. .biselado { background: #2323ff ;   /* Fondo, debe ser más claro que el borde */ border: 5px outset #4444ff ;   /* Grosor del Borde */   /* Color del Borde */ color: white ;   /* Color del texto */ text-align: center ;   /* Alineación del texto */ text-shadow: -1px -1px rgba(0,0,0,.2); } O podemos lograr el efecto contrario, reemplazando la palabra outset que se encuentra antes del color del borde por inset . Hola, soy un cuadro con inset. Veamos ahora una manera más efectva de simul

Botón circular 3D realista con CSS

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

El secreto está en la propiedad box-shadow . Luego border-radius para darle forma y ya lo obtenemos. See the Pen Botón tridimensional realista. by Lucas Maidana ( @LucasMaidana ) on CodePen . El HTML típico de un botón. <a class='boton' href='URL-DEL-BOTON'></a> Y el CSS. .boton {   background: url( http://www.ashleyjt.net/windows/images/Android.png )  /* Url de la imagen */  no-repeat center center, #62BC0F /* Color del botón */ ; background-size: 60%;  /* Tamaño de la imagen */   height: 200px;   /* Alto del botón */   width: 200px;   /* Ancho del botón */   display: table;   border-radius: 100%;   cursor: pointer;     box-shadow: /* Sombras externa */ inset 0 10px 15px rgba(255,255,255,.35), inset 0 -10px 15px rgba(0,0,0,.05), inset 10px 0 15px rgba(0,0,0,.05), inset -10px 0 15px rgba(0,0,0,.05), /* Sombra interna */ 0 5px 20px rgba(0,0,0,.1); } /* Al presionar */ .boton:active {   box-shadow: inset 0 5px 30px rgba(0,0,0,.2);  /* S

Texto con borde

Cómo insertar una galería de imágenes en tu blog. Súper simple y fácil de editar.

¿TEXTO CON BORDE? ¿Posible hacerlo sólo con CSS? SI ES POSIBLE NOTA : Esta propiedad no es compatible con todos los navegadores. Se recomienda Chrome o Firefox. Para lograrlo, debemos aplicar la propiedad text-shadow  para lograr muchas sombras del mismo color simulando un sólo borde. A <div class="texto1"> Texto </div> le aplicaremos: .texto1 { color:white;   /* Color del texto */ text-shadow: 1px 1px 0 blue ,                   -1px -1px blue ,                    1px -1px blue ,                   -1px 1px blue ,                    0 1px blue ,                    1px 0 blue ,                   -1px 0 blue ,                    0 -1px blue ; } Puedes cambiar blue por el color que desees. Aquí mas ejemplos. borde .texto2 { color:#AAFFB1; background:#AAFFB1; padding:20px 80px; text-shadow: 1px 1px 0 #2F7235, -1px -1px #2F7235, 1px -1px #2F7235, -1px 1px #2F7235, 0 1px #2F7235, 1px 0 #2F7235, -1px 0 #2F7235, 0 -1px #2F7235; } texto .