terça-feira, 6 de abril de 2010

Galeria de foto simples com jquery

Hoje vou mostrar como fazer uma galeria de imagens simples com jquery. Basicamente vamos apenas alterar o SRC da imagem e transporlá-la para outra imagem.

Existem várias formas diferentes para trabalhar com o 'SRC' das imagens. Caso esteja chamando as imagens através de um banco de dados, onde existe a imagem original e a miniatura, podemos colocar o caminho da imagem original em um input hidden para que esse input seja enviado para o 'SRC', além de colocar ou no atributo 'title' ou no 'alt' o id da imagem. Caso seja apenas um imagem (sem miniatura) fica ainda mais fácil, pois pegamos o 'SRC' da imagem clicada e enviamos para ser mostrada maior e alimentamos o 'alt' ou 'title' com os valores manuais.

Obs: as linha em laranja serão usadas apenas em caso de miniatura/amplianda, no caso uma imagem maior e outra menor, caso usem a mesma imagem tanto em miniatura quanto a ampliada, desconsiderem essas linhas.

Vamos para o HTML:

<img src='primeira-a-ser-exibida.jpg' id='foto_ampliada'  >

<img src='caminho' class='mini' alt='1' title='1' >
 <input type="hidden" size="1" value="caminho-da-imagem-grande" id="mini1" />
<img src='caminho' class='mini' alt='2' title='2' > 
<input type="hidden" size="1" value="caminho-da-imagem-grande" id="mini2" /> 
<img src='caminho' class='mini' alt='3' title='3' >  
<input type="hidden" size="1" value="caminho-da-imagem-grande" id="mini3" /> 
<img src='caminho' class='mini' alt='4' title='4' > 
<input type="hidden" size="1" value="caminho-da-imagem-grande" id="mini4" />  


Vamos para o Jquery

$(document).ready(function(){
                           $(".mini").click(function(){
                                                   

                                                     var cam = $(this).attr('src');
                                                    

                                                     var id = $(this).attr('alt');
                                                     var cam = $("#mini"+id).val();

                                                     $("#foto_ampliada").attr('src',cam);                                                     
                                                     })
}) // x ready


Após chamar a função ready (padrão), vamos as funções:

A as miniaturas vão conter a classe 'mini' que ao serem clicadas, caso seja através do banco de dados será pego o valor do atributo 'alt' e através dele vamos pegar o valor do input hidden.

Simples não?

Através desse princípio podemos ir mais fundo nessa função.


Podemos colocar um preload em jquery para que enquanto o 'SRC' é alterado informar algo para o usuário.

Grande Abraço!