Gallery How To
Este componente permite criar uma galeria de imagens de duas formas:
- a partir de uma lista em html
- programaticamente, para uso em outros componentes javascript
Quando criada a partir do primeiro modo, a lista degrada graciosamente na falta de javascript.
Demo
http://js.sapo.pt/SAPO/Component/Gallery/sample/
Configuração inicial
Para utilizar este componente são necessários os seguintes ficheiros:
<link href="http://js.sapo.pt/Assets/Images/Gallery/style.css" type="text/css" media="screen" rel="Stylesheet" /> <script type="text/javascript" src="http://js.sapo.pt/SAPO/0.1/"></script> <script type="text/javascript" src="http://js.sapo.pt/SAPO/Dom/Event/0.1/"></script> <script type="text/javascript" src="http://js.sapo.pt/SAPO/Dom/Css/0.1/"></script> <script type="text/javascript" src="http://js.sapo.pt/SAPO/Utility/Dimensions/0.1/"></script> <script type="text/javascript" src="http://js.sapo.pt/SAPO/Component/Gallery/0.1/"></script>
O ficheiro de estilos pode ser omitido, mas neste caso é necessário especificar css semelhante ao presente neste ficheiro que permita o mesmo comportamento.
Primeiro modo: lista em html
Código HTML necessário
<div id="gallery" class="SAPOGallery">
<a href="#" class="first">Primeira</a>
<a href="#" class="previous">Anterior</a>
<a href="#" class="next">Próxima</a>
<a href="#" class="last">Última</a>
<ul class="thumbs">
<li>
<a href="http://image.url/file_original.jpg" title="titulo da imagem">
<img src="http://image.url/file_thumbnail.jpg" alt="titulo da imagem" />
</a>
<div class="caption">Legenda para a imagem</div>
</li>
</ul>
</div>
- A id do div container pode ser especificada pelo utilizador.
- Os links são opcionais, e podem ser usados apenas anterior/proxima ou primeira/ultima.
- O div de caption também é opcional.
- As classes presentes são necessárias ao funcionamento do componente e podem ser também usadas para styling do componente
- Os links de Anterior/Próxima têm uma classe disabled quando se está na primeira/última imagem, respectivamente
- No código gerado, irá existir um container com uma classe SAPOGalleryStage para a imagem que está a ser mostrada
- No código gerado, irão existir 2 links anterior/proxima que aparecem ao fazer hover sobre a imagem, com classes prev/next respectivamente, e disabled quando na primeira/última. Estes links estão dentro do div com a classe SAPOGalleryStage
Código JS necessário
new SAPO.Component.Gallery({
container: "gallery"
});
Não esquecer de colocar este código dentro de um dom ready ou apenas no final da página.
Além do parâmetro container que indica o elemento que contém a estrutura de HTML necessária à galeria, existem outros parâmetros adicionais:
- hoverControls (default: true): Activa botoes de prev/next que aparecem ao fazer hover na imagem
- hoverThumbs (default: false): Usa thumbnails das imagens em vez de texto nos hover links
- navThumbs (default: false): Usa thumbnails das imagens nos links exteriores de prev/next
- pageThumbs (default: false): Define um número por página para fazer paginação das thumbnails visíveis
- prevLabel (default: Anterior): Texto para o hover link Anterior
- nextLabel (default: Próxima): Texto para o hover link Próxima
- prevPageLabel (default: <<): Texto para o link da pagina de thumbnails anterior
- nextPageLabel (default: >>): Texto para o link da pagina de thumbnails seguinte
- showList (default: true): Mostrar a lista de thumbnails
- onChange (default: false): Callback executada a cada mudança de imagem
Segundo modo: criar a galeria programaticamente
Código JS necessário
Neste modo é necessário especificar um array list com objectos relativos a cada imagem a ser carregada.
var gal = new SAPO.Component.Gallery({
list: [
{
href: "http://image.url/file_original.jpg",
thumb: "http://image.url/file_thumbnail.jpg",
title: "image title",
caption: "image caption"
}
]
});
Após inicializar, é necessário usar o método getGallery para ter acesso à markup gerada para a galeria, e introduzi-la no DOM. Por exemplo:
document.body.appendChild(gal.getGallery());
Todas as opções do primeiro modo são aplicáveis. Existem mais algumas opções apenas para este modo:
- navLinks (default: false): Adiciona links externos de navegação Próxima/Anterior?
- endsLinks (default: false): Adiciona links externos de Primeira/Última
- prevLabel (default: Anterior): Texto para o hover link Anterior ou para o link externo
- nextLabel (default: Próxima): Texto para o hover link Próxima ou para o link externo
- firstLabel (default: Primeira): Texto para o link externo Primeira
- lastLabel (default: Última): Texto para o link externo Última
- showCaption (default: true): Mostrar a caption
Métodos adicionais
- gotoPrev - Avança para a imagem anterior
- gotoNext - Avança para a próxima imagem