Slideshow com jQuery

Postado por: Pedro Rogério em
jQuery Slideshow

Nesse tutorial vamos aprender a desenvolver um simples Slideshow de imagens com a utilização do jQuery que pode ser aplicado em diversos lugares devido a sua simplicidade. Esse tutorial foi criado originalmente por Jon Raasch. Inclusive é ele que uso aqui no meu site para mostrar meu portifólio.

Repare na simplicidade do HTML:

<div id="slideshow">
    	<img class="active" src="images/image1.jpg" alt="" title="" />
        <img src="images/image2.jpg" alt="" title="" />
        <img src="images/image3.jpg" alt="" title="" />
        <img src="images/image4.jpg" alt="" title="" />
</div>

Basicamente você irá precisar de uma div, e dentro da mesma é onde você irá colocar as imagens para as transições, coloque quantas desejar. Somente adicione a classe active a primeira imagem.

Algumas considerações também devem ser feitas no CSS para que ele funcione corretamente, elas serão listadas abaixo:

#slideshow {
    position:relative;
    height:376px;
    width:490px;
    margin:0 auto;
}

#slideshow img {
    position:absolute;
    top:0;
    left:0;
    z-index:8;
}

#slideshow img.active {
    z-index:10;
}

#slideshow img.last-active {
    z-index:9;
}

Na div #slideshow é onde você deve definir a altura e largura do box que irá conter as imagens. Se as imagens tiverem o mesmo tamanho seu slideshow ficará mais elegante. Agora, o JavaScript, que como podem ver, também é muito simples:

function slideSwitch() {
    var $active = $('#slideshow img.active');

	$active.addClass('last-active');

	// verifica se existe um próximo objeto na div #slideshow, caso ele nao exista, retorna para o primeiro
    var $next =  $active.next().length ? $active.next() : $('#slideshow img:first');

	// Codigo que define as transicoes entre as imagens
    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}

$(function() {
	//Executa a função a cada 5 segundos
	setInterval( "slideSwitch()", 5000 );
});

Vejam agora o exemplo do Slideshow.

Posts Relacionados

Confira também outros artigos interessantes postados aqui no blog.

Gostou desse post?

Assine o nosso Feed RSS, siga-nos no Twitter, ou simplesmente nos recomende a seus amigos!

Sobre Pedro Rogério

Pedro Rogério é desenvolvedor web por paixão, não saberia fazer melhor outra coisa. Além de escrever para o CSS no Lanche também escreve para o Pinceladas da Web, blog com assuntos gerais sobre desenvolvimento web.

37 Responses to “Slideshow com jQuery”

  1. thiago cardoso disse:

    matou a pau nesse hein…..parabens

  2. Adriano Vasconcelos disse:

    Muito legal, bom trabalho cara..sou iniciante nessa aventura que é a WEB, mas apaixonado pelo que ela oferece. Parabéns.

  3. Paulo disse:

    Olá Pedro, eu sou iniciante em desenvolvimento pra web, testei esse slideshow, mas quando tentei adicionar um link a imagem, a mesma parou de ser exibida no slideshow, pq isso acontece? e teria como corrigir?

    Abração

  4. Róger Klein disse:

    Olá, tudo blza?
    Cara, eu não consigo fazer funcionar esse slideshow, já verifiquei umas 10 vezes o código todo e nada de funcionar.
    Dá uma luz ae!!
    flws

  5. Vinicius disse:

    Em primeiro lugar, meus parabéns pela materia, acompanho esse blog a algum tempo e essa não é a primeira vez que uso no meu trabalho algo que aprendi aqui…

    Agora uma duvida
    Estou com o slideshow funcionando muito bem em uma pagina aqui,
    porem, tenho tbm um menu dropdown vertical que precisa ficar logo acima da div
    do slideshow, o que esta acontecendo é que s slides sempre ficam cobrindo a droplist do meu menu, alguem sabe como resolver?

    Abraços!

  6. Luisandro disse:

    Tenho uma página que mostra uma lista de 5 imagens em cada imagem deveria mostrar um slide com outras imagem, mas não funciona ele mostra sempre o slide da primeiro imagem, e quando dou um clique nas outras imagem sempre mostra as mesmas imagens, conclusão o slide só funciona em uma imagem na página.

  7. VitorGGA disse:

    Gosto muito do JCycle, com ele consigo comtemplar praticamente todas possibilidades de slideshow.

  8. miguel disse:

    Ok, você salvou a minha vida.

    Não sei como você conseguiu ok?

    Já tentei smooth gallery/noob slideshow e qualquer tipo de Jcycle…

    NADA!!!!!!!!!!!!!!!!!!!!!!!!

    E quando eu conseguia instalar um slideshow as imagens ficavam todas uma em baixo da outra na parte da edição e e não conseguia suportar isto.

    E o teu tutorial funfou tranquilamente.

    obrigado!

  9. Daniel disse:

    Olá, achei muito legal esse artigo, era o que eu estava buscando aprender.
    Realizando a implementação no meu site, as imagens não se alteram. Ele carrega a primeira e ela mantém-se estática.

    Já adicionei as tags no XHTML, já inseri o CSS e já criei o link dentro do index para o arquivo JQuery 1.2.6. Tenho que fazer mais alguma coisa pra funcionar? Modificar mais alguma coisa?

    Poderiam me esclarecer?

    Desde já agradeço se puderem ajudar e parabéns pelo site, têm me ajudado bastante!!

  10. Olá,

    já tenho usado esse seu exemplo em alguns projetos, no entanto agora preciso que o slideshow tenha um botão de previous e next. Gostaria de saber se com base nesse seu exemplo daria para criar algo do tipo?

    Muito Obrigo! ;)

  11. Wellington disse:

    Olá,

    Estou tentando usar o script deste tutorial que é muito bom por sinal, porém só esta funcionando localmente quando faço upload para o servidor as imagens não trocam
    da pra dar uma força.

    http://www.admutua.com.br/slide.php

  12. Eduardo disse:

    Achei muito bom esse script!
    Mas veja se consegue me ajudar…
    Como faço para colocar um botão de next e previous?
    To tentando mas não tenho obtido sucesso!

    Tenho que dizer que sou inciante em jquery!

    Se alguém puder, fico grato!

    Abs

  13. [...] lembram que eu já ensei por aqui a desenvolver facilmente um slideshow com jQuery, ótimo para ser usado em portifólios. Dessa vez vou ensinar mais uma vez a desenvolver um [...]

  14. Eder Prado disse:

    Usei em menos de 5 minutos e consegui o efeito desejado.
    Fera!

    Abraço.

  15. Pedro,
    funcionou perfeitamente,
    parabéns pelo post, excelente.

  16. Leonardo disse:

    Olá!

    O Slideshow funcionou numa boa, porém, ao inserir link nas imagens ele para de funcionar. Você tem uma solução, já tentei adicinar este linha de comando, mas não foi…
    var $next = $active.parent().next().children(‘img’).length ? $active.parent().next().child(‘img’)
    : $(‘#slideshow IMG:first’);

    Abraço!

  17. André disse:

    Valeu pelo script! Funcionando bem!

    Abraços

  18. Rodrigo T. disse:

    Ótima técnica… muito fácil de entender. Interessante a ideia de usar o z-index pra fazer a rotação das imagens. Valeu!

  19. Leopoldo disse:

    Vinicius,

    Ótimo artigo, mas se ao invés de carregar imagens, como a maioria dos exemplos na web, eu quisesse carregar um arquivo html, como poderia ser feito ?

  20. Natan disse:

    Olá amigo, seu slideshow deu certo aqui, porém tô com um problema que provavelmente é besta, mas eu estou começando agora e estou me batendo um pouco…
    Não consigo posicionar o slide aonde eu quero que ele fique…
    Tenho que colocar ele embaixo do menu em uma div que já estava criada. Coloquei o código das imagens com as divs dentro dessa minha div que eu havia criado antes… Mas o slide fica lé em cima do site, no topo…. ja tentei organizar mas não consigo…

    Me dá uma luz por favor!

  21. MidnightSkye9 disse:

    Oi,
    Muito bom o seu post, mas quando tentei fazer no meu site (utilizando EXATAMENTE seu código), só aparece a primeira imagem, estática. Tentei no Chrome e no Firefox e o efeito foi o mesmo.
    O que fazer???

  22. Luiz disse:

    Olá Pedro!

    Gostaria de saber se é possível vc explicar como colocar link nas imagens desse slide show! Olhei o exemplo do seu site mas não consegui entender…

    Agradeço desde já!

  23. Arilson disse:

    Show de bola. É muito mais simples do que o nivo slide e o co-slider. Valeu.

  24. Willy disse:

    otimo slide, e mt bem explicado, ajudou muito…

    obs: ao adicionar link as imagens o slide fica totalmente desregulado, se alguém teve o mesmo problema e conseguiu resolver poderia me dar a dica? (:

  25. Leonardo Lucas Jr disse:

    Ótimo tuto , e excelente slide. Obg.

  26. José Augusto Rodrigues da Cruz disse:

    Há alguma maneira de deixar esse slider, redimensionável de acordo com o browser tipo o site da paparazzo.com.br

  27. Fernanda disse:

    Olá! Sou meio que iniciante em desenvolvimento de sites e em java script/jquery… Tudo funcionou direitinho, mas agora tá aparecendo um erro chamado Z-Index Bug dentro do conteúdo da div do slideshow, quando adicionei mais imagens.
    No IE, o slide não muda! Fica estático somente na primeira imagem… Tem algo que eu possa fazer para resolver essas coisas?! No chrome fica perfeito, no firefox tbm!
    Outra coisinha ;D nesse código daria para colocar de alguma forma aquelas setinhas para voltar a imagem ou ir para a próxima?!
    Obrigada!!

  28. Rafael disse:

    Olá,
    Parabéns pelo belo trabalho.
    Belo tutorial.
    Ficou show!

  29. Lauren disse:

    Fiz tudo certo, mas as imagens não mudam! Fica so uma!

Leave a Reply