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





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?
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!
obrigada por suas informações dadas nesse blog , me ajudaram muito .
aguardo ansiosamente novas postagens .
Obrigado pela visita e pelos elogios.
Volte sempre! ^^
[...] Pra quem não viu as configurações básicas do JCarousel, aqui estão! [...]
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.
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! ^^
Muito obrigado, novamente, Vinícius. Estarei acompanhando os posts de seu blog.
[...] Como um exemplo simples vou citar a pagina de exemplo do próprio JCarousel, item já citado neste blog, aqui. [...]
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
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! ^^
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
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! ^^
[...] Professor Martins Mazza, que une o Jcarrousel e o LigthBox. Ele utilizou o Jcarousel, já explicado aqui e aqui, e o LigthBox, encontrado [...]
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!
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! ^^
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!
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! ^^
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!
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! ^^
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!
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!!
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! ^^
Valeu Vinicius!
Vou dar uma olhada no css e te falo o que eu consegui.
Abraço!
Posso implementar isso num blog? obrigado
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! ^^
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!
é, 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
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
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
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?