Galería de imágenes con JQuery

A continuación se muestra un ejemplo de galería de imágenes utilizando el efecto de desvanecimiento y difuminación, utilizando estilos, y jquery.

Esta imagen muestra el diseño de la pagina en si.

imagen general de la pagina

imagen general de la pagina

Aquí se puede observar el efecto que se aplica, al hacer clic sobre una imagen aparecerá dicha imagen en el recuadro de la derecha (efecto de desvanecimiento) mientras el resto de las imágenes no seleccionadas se difuminan.

al dar click se aprecian estos efectos

al dar click se aprecian estos efectos

1) hacer referencia a la librería de jquery

<script src=“http://code.jquery.com/jquery-1.11.0.min.js”></script>


2) editaremos la parte de los estilos que para dar formato a la pagina

/*referencia a una fuente de google*/

href=’http://fonts.googleapis.com/css?family=Henny+Penny’ rel=’stylesheet’ type=’text/css’/>

<style type=”text/css”>

/*clase que edita el logo de inicio de la pagina*/


.principal{
width:200px;
height:200px;
}

/*clase que edita el titulo de la pagina */


.titulo{
width:1000px;
height:200px;
margin-top:-200px; margin-left:200px;
text-align:center;
font-size:80px;
color:white;
font-family: ‘Henny Penny’, cursive;
}

/*clase que edita el tamaño y borde que tiene cada imagen del menú (imágenes pequeñas)*/

.imCh2{
width:100px;
height:100px;
border:thin orange solid;
}

/*clase que edita el div que contiene cada una de las imágenes pequeñas*/

.imCh{
width:103px;
height:103px;
float:left;
}

/*clase que edita el div que contiene la imagen grande */

.imG{
width:400px;
height:400px;
margin-top:-425px;
margin-left:450px;
border:thin gray dashed;
}

/*clase que edita el tamaño de la imagen grande (imagen del efecto de desvanecimiento) */

.imG2{
width:400px;
height:400px;
}

/*clase que edita los títulos de separación en el menú*/


.subtitulos{
width:200px;
color:white;
text-align:center;
font-size:25px;
}

/*edita el cuerpo de la pagina*/

body{
background-color:black;
margin: 50px;
}


3) dar forma a la pagina utilizando html (body)

/*se crea el titulo con el logo de la pagina*/

<div>
<div><img class=”principal” src=”principal.jpg” alt=”” /></div>
<div class=”titulo”>Bienvenido a Hogwarts!</div>
</div>

 

/*se crea el menú de imágenes (para este caso son 8 y 2 subtitulos) cabe mencionar que para que este código funcione deben agregarse directorios reales en el atributo src de las imágenes*/

<div style=”width:206px; margin-left:200px; overflow:hidden;” >


<div class=”subtitulos”>Casas</div>
<div class=”imCh”><img class=”imCh2″ src=”g.jpg” alt=”” /></div>
<div class=”imCh”><img class=”imCh2″ src=”s.jpg” alt=”” /></div>
<div class=”imCh”><img class=”imCh2″ src=”h.jpg” alt=”” /></div>
<div class=”imCh”><img class=”imCh2″ src=”r.jpg” alt=”” /></div>


<div class=”subtitulos” style=”margin-top:205px”> Profesores</div>
<div class=”imCh”><img class=”imCh2″ src=”dom.jpg” alt=”” /></div>
<div class=”imCh”><img class=”imCh2″ src=”mcgo.jpg” alt=””/></div>
<div class=”imCh”><img class=”imCh2″ src=”snape.jpg” alt=”” /></div>
<div class=”imCh”><img class=”imCh2″ src=”hagrid.jpg” alt=”” /></div>
</div>

 

/*colocamos la imagen grande que es la que va a ir apareciendo dependiendo de la imagen seleccionada (por default en este ejemplo se utiliza otra imagen)*/

<div class=”imG”><img class=”imG2″ src=”ini.jpg” alt=”” /></div>


4)Ahora si editaremos los efectos con jquery

<script type=”text/javascript”>
$(document).ready(funcion);

/*esta función genera el desvanecimiento y reaparición de cada una de las imágenes pequeñas osea el menú (desvanecer y reaparecer la imagen duran en conjunto el mismo tiempo del efecto de la imagen grande) */

function desvanece(){
$(“.imCh2”).each(function(){ 
/*se indica que para cada imagen del menú se realizaran las sig. animaciones*/

$(this).animate({opacity:0.15},10,function(){
 /*opaca la imagen en un tiempo de 10 ms*/

$(this).delay(900).animate({opacity:1},0); 
/*detiene la imagen opacada por 0.9 seg y luego la reaparece */

});
});
}

/*función principal donde se revisa sobre cual imagen se dio clic y se implementan las animaciones*/

function funcion(){


$(“.imCh2”).click(function(event){ 
/*se revisa el clic en cualquiera de las imágenes*/

$(“.imG2″).css({display:”none”});  
/*desaparece la imagen grande que se encuentre desplegada*/

var im=$(this).html($(this).attr(“src”)).text(); 
/*de la imagen donde se dio clic (this) se recupera el atributo src y se convierte en una cadena*/

switch(im){  
/*este switch se utiliza para aparecer un fondo diferente para cada una de las imágenes intercalado en el efecto*/


case “g.jpg”:$(“.imG”).css({background:”#6E1B17″}); break;
case “s.jpg”:$(“.imG”).css({background:”#386C26″}); break;
case “h.jpg”:$(“.imG”).css({background:”#94681E”}); break;
case “r.jpg”:$(“.imG”).css({background:”#072466″}); break;
case “dom.jpg”:$(“.imG”).css({background:”#4E6A81″}); break;
case “mcgo.jpg”:$(“.imG”).css({background:”#121C0D”}); break;
case “snape.jpg”:$(“.imG”).css({background:”black”}); break;
case “hagrid.jpg”:$(“.imG”).css({background:”#69493A”}); break;
}

/* aquí se aplica el efecto de aparecer la imagen grande gradualmente (fadeIn) , antes de que aparezca la imagen se ve el color de fondo seleccionado*/

$(“.imG2”).attr(“src”,im).fadeIn(1000);

/*manda llamar la función desvanece (explicada arriba)*/

desvanece();

/*debido a que desvanece() opaca todas las imágenes del menú con la sig. instrucción reaparece la imagen sobre la que se dio clic, este efecto tiene un tiempo de 0 seg para que no se note la transición*/

$(this).animate({opacity:1},0);
});
}
</script>




NOTA1: recordar que los script y style van dentro del <head>

NOTA2: la librería de jquery de la forma que aparece en este blog solo funciona al estar conectado a Internet, si se va a utilizar sin Internet es preciso descargar y guardar la librería en el mismo directorio donde se guardará la pagina.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.