JCarousel

10 07 2009

Trata-se de um plug-in do JQuery para controlar uma lista (ul li) de imagens de forma rotativa, tanto no sentido vertical como no sentido horizontal.

Neste post, irei ilustrar com um exemplo o funcionamento do código, e citar suas diversas variantes. Será abordado apenas as versões estaticas do projeto, mas o ajax pode ser utilizado sempre que necessário pra carregar as imagens dinamicamente.

O Site do projeto (http://sorgalla.com/projects/jcarousel) em inglês, possui muitas informações.

Bem, vamos ao trabalho!

Inicio

Primeiro, temos que baixar o arquivo do Projeto Jcarousel, disponível em duas versões: jcarousel.tar.gz ou  jcarousel.zip

Depois,  temos que linkar as bibliotecas, do JQuery e do JCarrousel, bem como os seus respectivos CSS’s ( do JCarousel e do Skin – apos abordarei esse tema). Logo, colocando os Scripts em uma pasta denominada “js” e os CSS’s em uma pasta chamada “css”, temos:

<script src="js/jquery-1.2.1.pack.js"></script>
<script src="js/jquery.jcarousel.pack.js"></script>
<link rel="stylesheet" href="css/jquery.jcarousel.css"/>
<link rel="stylesheet" href="css/skin.css"/>

Após feito isso, basta criar uma lista simples com as imagens que deseja utilizar, conforme abaixo:

<ul id="mycarousel" class="jcarousel-skin-nome">
    <li><img src="img/figura1.jpg" alt="" /></li>
    <li><img src="img/figura2.jpg" alt="" /></li>
    <li><img src="img/figura3.jpg" alt="" /></li>
    <li><img src="img/figura4.jpg" alt="" /></li>
    <li><img src="img/figura5.jpg" alt="" /></li>
</ul>

Para configurar o Carosel, usaremos o seguinte Script, dentro da tag <header> da pagina:

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery('#mycarousel').jcarousel();
    });
</script>

Desta forma, temos um carosel simples, horizontal e com 3 imagens por vez.
Confira o exemplo!

O JCarousel funciona perfeitamente seguintes navegadores:

  • IE6+, Firefox 1.5+ (PC/Mac/Linux);
  • Opera 9, Safari 2 (Mac);
  • Safari 3 (Pc);
  • Konqueror 3.4 (Linux).

Lembrando que caso o JavaScript esteja desativado (lenda) o conteúdo não se perde.

Breve veremos como configurar as opções avançadas do Carosel.

Até lá!   ^^

Créditos (Gênios):

Livraria JQuery: John Resig
Livraria JCarousel: Bill Scott


Ações

Informação

31 respostas

13 07 2009
Ingrid

Estou com um grande problema, no meu tem o total de 11 fotos que aparecem de 4 em 4 por causa do tamanho que coloquei a div, porém sempre pega uns 10 px da proxima imagem, e nunca passa para 2 ultimas fotos.

Por está de 4 em 4 a se nao colocar mais 2 fotos sempre dará erro no script?

13 07 2009
viniciuswebmaster

Bem, como o “padrão” do script é passar de 3 em 3 imagens, vamos tentar “forçar”, aplicando algumas configurações.
No script de configuração do carrosel, dentro da tag header, coloque da seguinte forma:

jQuery(document).ready(function() {
jQuery(‘#mycarousel’).jcarousel({
size:11,
scroll:4,
visible:4
});
});

Certifique-se tambem que todas as imagens tem o mesmo tamanho!
Quanto a quantidade, pode-se colocar quantas quiser, ja que no próprio exemplo a ultima rolagem é de apenas um item. ^^
Caso dê certo ou ainda exita alguma dúvida, poste aqui!

Breve haverá um post com mais esclarecimentos sobre as configurações avançadas do plugin!

Obrigado pela visita e volte sempre!

14 07 2009
Theresa

obrigada por suas informações dadas nesse blog , me ajudaram muito .
aguardo ansiosamente novas postagens .

15 07 2009
viniciuswebmaster

Obrigado pela visita e pelos elogios.
Volte sempre! ^^

15 07 2009
JCarousel – Configurações avançadas « Vinicius Webmaster

[...] Pra quem não viu as configurações básicas do JCarousel, aqui estão! [...]

16 07 2009
José Freitas

Olá Vinícius. Eu tenho uma dúvida relacionada referente à esse efeito.

Eu estou utilizando o código-fonte que eu peguei de modelo desse site (em trabalhos recentes):
interwise.com.br

Mas não estou conseguindo fazer um play/pause, para logo quando carregar a página, ficar rotacionando a cada 5 segundos, com o efeito e loop infinito, ou seja, sem pausar quando chegar ao final, e sim voltar ao início (primeiro trabalho) e continuar rotacionando, e só pausar se o usuário clicar no botão pausar, e mudar o botão para play se o usuário desejar continuar rotacionando.

Creio que deve ser o mesmo script, pois é com jquery. Você poderia me ajudar a implementar nesse código essa função de “auto-play”?

Obrigado, e parabéns pelo tutorial e blog que são excelentes e sempre estou acompanhando seus posts.

17 07 2009
viniciuswebmaster

Olá José, fico lisongeado pelos elogios e muito obrigado pelas visitas.

Entendi a sua dúvida e estou providenciando um código desta forma, como exemplo e com os devidos comentarios para que você possa modificar a seu gosto.

Não estipularei um prazo, mas fique de olho nos feeds que em breve teremos um post entitulado de ” JCarousel com controle de play”.

Muito obrigado novamente pelo incentivo! ^^

17 07 2009
José Freitas

Muito obrigado, novamente, Vinícius. Estarei acompanhando os posts de seu blog.

1 08 2009
Campanha: Atualize seu navegador! « Vinicius Webmaster

[...] Como um exemplo simples vou citar a pagina de exemplo do próprio JCarousel, item já citado neste blog, aqui. [...]

20 08 2009
Mazza

Vinicius, boa noite!

Suas dicas ajudaram muitas pessoas.

Gostaria de saber como fazer usando este plugin; quando clicar sobre um das imagens do carrocel a mesma seja mostrada abaixo do carrocel no tamanho real da imagem ou por mim determinada..

Grato

21 08 2009
viniciuswebmaster

Opa, bom dia Mazza!
Existem diversas formas de fazer isso, mas a mais indicada, por ter um efeito visual mais bonito, ja possuir plugin, utilizar AJAX, etc. Essa forma é o LightBox 2. Clique aqui para ver o site do projeto.
Caso tenha interesse, posso fazer um tutorial em portugues ai no fim de semana… ^^

Espero que tenha ajudado! ^^

22 08 2009
Mazza

vinicius, boa noite!!!

Grato pela dica, enquanto estava aguardando a sua opnião estive pesquisando e consegui juntar os dois projetos que acho que nesta segunda posso te passar para disponibilizar para o publico. o que acha???
Jcarousel e Lighbox

bom final de semana

22 08 2009
viniciuswebmaster

Opa, boa noite Mazza!
Sera excelente se vc puder compartilhar sua experiencia conosco! ^^
Tambem estive pesquisando sobre o assunto, e achei muitos LightBox’s que utilizam o JQuery. Para nós, que vamos utilizar o LightBox junto com o JCarousel, seria excelente poder usar o mesmo Framework (JQuery).
O LightBox que eu te passei (Lightbox2 by Lokesh Dhakar) utiza o Prototype Framework e a Biblioteca de Efeitos do Scriptaculous.
Dentre os LightBox’s que eu encontrei, destacam-se:

prettyPhoto
jQuery lightBox plugin

Aguardo seu retorno, em breve disponibilizarei um tutorial falando de um dos dois LightBox, ou de algum outro melhor que eu encontrar… ^^

Obrigado pelo incentivo e aguardo seu código! ^^

2 09 2009
JCarousel + LigthBox – Contribuição « Vinicius Webmaster

[...] Professor Martins Mazza, que une o Jcarrousel e o LigthBox. Ele utilizou o Jcarousel, já explicado aqui e aqui, e o LigthBox, encontrado [...]

8 05 2010
Guevara

Olá!
Estou com uma aplicação web em Java onde salvo o nome da imagem no banco e a imagem numa pasta fora da aplicação (/home/guevara/fotos), preciso pegar as imagens da pasta usando os nomes que estão no banco e chamar essas imagens que estão na pasta pela ID do imóvel.
Exemplo:
20.varanda1.varanda.jsp
Onde 20 é a ID do imóvel, varanda é o nome inserido pelo usuário no form, e varanda.jsp é o nome da imahem upada.
Têm idéia de como posso fazer uma galeria de imagens com o que eu já tenho?
Abraço!

10 05 2010
viniciuswebmaster

Opa, bom dia Guevara, e obrigado pelo comentário!

Bem, na minha opinião é muito fácil gerar um carrosel com oq vc tem!
Basta, dinâmicamente, gerar uma lista desordenada (<ul><li>) e colocar o seu id como “mycarousel”, conforme exemplo:

<ul id="mycarousel" class="jcarousel-skin-nome">
    <!-- Aqui vc coloca um loop no banco de dados para gerar sua lista, a partir das imagens que já tem -->
</ul>

Infelizmente, não sei como fazer esse loop em java, mas vc deve saber… ^^

Depois disso, confira se esta gerando um XHTML assim:

<ul id="mycarousel" class="jcarousel-skin-nome">
    <li><img src="img/20.varanda1.varanda.jsp" alt="" /></li>
    <li><img src="img/20.varanda2.varanda.jsp" alt="" /></li>
    <li><img src="img/20.varanda3.varanda.jsp" alt="" /></li>
    <li><img src="img/20.varanda4.varanda.jsp" alt="" /></li>
    <li><img src="img/20.varanda5.varanda.jsp" alt="" /></li>
</ul>

Se não estiver, corrija o seu loop! Com o XHTML pronto, estamos na cara do gol!
Basta linkar os scripts (jQuery e jCarrousel) e os CSSs, conforme o post explica.

Boa sorte, e caso consiga fazer o loop, compartilhe ai conosco nos coments!
Vlw! ^^

12 05 2010
Guevara

Oi Vinicius!
O problema é justamente na JSP, pois a idéia é pegar a url que está no banco, ler a imagem que está na pasta e mostrar na JSP, não posso colocar uma por uma na JSP, teria que ser uma coisa automática e dinâmica, como um álbum do Orkut por exemplo, a gente vai adicionando as imagens e deleta depois.
Eu consigo salvar e deletar todas as imagens, veja como está o caminho no banco:
http://img52.imageshack.us/img52/7717/print7.png
Consigo salvar apenas o nome da imagem, como tb o caminho completo.
O grande problema é que não consigo achar na documentação de plugins JQuery como colocar uma linha na JSP que seja alimentada com o que vêm da aplicação. Tipo:

Dessa forma as imagens vão aparecer automáticamente com o que existe no banco.
Todos os plugins que vi até agora só mostram a possibilidade de mostrar imagens colocando uma por uma na página.
Estou tentando resolver isto pela aplicação mesmo, assim que conseguir algo eu posto aqui.
Abraço!

19 05 2010
viniciuswebmaster

Guevara,

Pesquisei algumas coisas e achei dois resultados interessantes. O primeiro, ensinando como fazer um loop em determinado diretório, pegar todas as imagens e montar a estrutura que necessitamos para o carrousel. Segue fonte:

Pegar arquivos de um diretório – JavaFree

Em PHP, costumo fazer isso pois diminui o número de querys e dados no banco. (Em php é muito mais fácil tbm… rs)

A segunda opção, já que você tem as imagens no banco de dados, segue uma lista de tutoriais de banco de dados no Java, parece ser bom:
Acessando banco de dados:
Parte 1
Parte 2
Parte 3

Caso consiga, nos passe ai o “mapa da mina”!

vlw! ^^

20 05 2010
Guevara

Consegui Vinicius!
http://img192.imageshack.us/img192/3786/print11.png
Foram poucos códigos, em breve posto um tutorial sobre como fazer galeria de fotos usando o framework VRaptor 3 e te mando.
http://vraptor.caelum.com.br/
Abraço!

20 05 2010
viniciuswebmaster

Opa, que bom que conseguiu!
O Framework parece ser bacana… ^^
Mas, você implementou o Carrousel tbm ou só o Lightbox?
Neste site (http://mea.pucminas.br) eu implementei os dois juntos, utilizando o jQuery Tools.
Tem muita coisa bacana e é facil de implementar!
Se precisar de mais ajuda pode falar comigo!

O blog anda parado, pq estou trabalhando no meu blog pessoal com plataforma WordPress.Org.
Em breve voltarei com mais posts! ^^

20 05 2010
Guevara

Oi Vinicius!
O print que mandei foi com o Lightbox, agora estou usando o JCarousel. Saca só.
http://img52.imageshack.us/img52/8485/print85.png
Ótimo plugin para colocar na view pro cliente, no print estou na área do admin que faz o upload das fotos, mas depois vou decidir qual plugin usar para cada caso.
Abraço!

23 05 2010
Guevara

Fala Vinicius!
Tô com uma dúvida aqui, como faço para deletar as imagens individualmente usando esses plugins? Tenho a seguinte linha de código para remover a foto mas não sei onde eu posso colocar.
http://pastebin.com/m9EvbsKF
Queria que abaixo de cada foto tivesse esse meu “remover” ai.
Mostrei o JCarousel pro pessoal da faculdade e o pessoal se amarrou. =)
Abraço!!

24 05 2010
viniciuswebmaster

Basta inserir esse código dentro das tags “li”, depois da imagem, mas dentro da tag “li”. Ai, basta você posicionar esse link com o CSS. Para isso, recomendo que dê uma olhadinha no arquivo CSS que vem junto com o script, pois nele já existem regras a respeito do posicionamento das figuras e tal.
Aumente a altura de cada “célula” de imagem, posicione a imagem na parte superior e o link para deletar na parte inferior.
Não esqueça de implementar uma confirmação antes da exclusão da imagem, caso o usuário clique sem querer…
Você ainda pode colocar uma imagem de uma lixeira no lugar da palavra excluir, e, quem sabe, oferecer opções de editar as propriedades da imagem ou desativa-la, para que ela permaneça no BD mas não seja mostrada no Front-End…

As possibilidades são inumeras, e se fosse em php, juro que te ajudaria… =P

Boa sorte! ^^

24 05 2010
Guevara

Valeu Vinicius!
Vou dar uma olhada no css e te falo o que eu consegui.
Abraço!

5 08 2010
dubalaio

Posso implementar isso num blog? obrigado

5 08 2010
viniciuswebmaster

Claro!
Em qualquer serviço de blog que suporte a inserção de Javascript!
Blogger (blogspot) e WordPress, que são os mais conhecidos, aceitam!

Boa sorte! ^^

8 09 2010
Adriano Meira

Vinicius, é o seguinte eu usei o carousel de boa e consegui colocar, de acordo com a documentação do plugin, uma “paginação”, porém queria que eta paginação ao passar automaricamente ganhasse uma classe, seria algo com um callbeck de cada slide, isso por que ele é tem o “autoscroll’, deu pra entender?
Valew!

8 09 2010
viniciuswebmaster

é, na verdade não entendi não… rs

Qual o motivo de vc colocar uma classe no slide que já saiu?
e qq tem o autoscroll a ver com isso tudo?

:S

8 12 2010
Adriana

Obrigada pelas explicações.
Tenho um problema: a minha lista abre normalmente, mas pasta abrir outra aba no navegador que o site (que contem a lista) desalinha.

Poderia me ajudar?

Grata desde já,
Adriana

24 03 2011
Leandro

Galera, to fazendo a utilização do plugin e gostaria de saber se é possível usar 6 imagens e essas imagens serem separadas por duas colunas e assim que clicar mostrar mais 6 imagens e assim por diante?

agradeço desde já
Abraços

14 04 2011
André Kottwitz Claro

olá, se por exemplo eu quiser q apareça 4 img mas sendo 2 em uma linha e 2 na segunda linha.. tipo um ;;
tem como fazer isso com o jcarouser?

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s




Seguir

Obtenha todo post novo entregue na sua caixa de entrada.