Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, tudo bem?
recentemente eu estive iniciando na linguagem jQuery e, após adquirir alguns conhecimentos básicos, resolvi tentar criar um slideshow por conta própria, para consolidar o pouco que aprendi até agora. Ocorre que eu "consegui" criar o SlideShow mas ele esta apresentando um comportamento estranho que não consigo revolver. Segue o código:
CSS
.off { display: none; }
.on { display: block; width: 600px; height: 300px; box-shadow: 2px 2px 4px black; }
HTML
<figure>
<img src="photos/ex1.png"/>
<img src="photos/ex2.png"/>
<img src="photos/ex3.png"/>
</figure>
Jquery
$('figure img').addClass("off");
var now = 1;
setInterval(function(){
if(now >= total){
now = 1;
}
$('figure img').addClass("off");
var total = $('figure img').length;
var last = now - 1;
$('figure img:nth-child('+last+')').removeClass("on");
$('figure img:nth-child('+last+')').removeClass("on");
$('figure img').addClass("off");
$('figure img:nth-child('+now+')').addClass("on");
$('figure img:nth-child('+now+')').removeClass("off");
now = now + 1;
}, 6000);
O que esta acontecendo é que quando abro a página, ele funciona corretamente e exibe as três fotos, uma de cada vez(exibe uma, ela some rapidamente e aparece a outra). Depois que ele exibe todas as imagens pela primeira fez ele começa a falhar e ao invés de exibir uma imagem de cada vez ele começa a mostrar todas as três, uma posicionada acima da outra. Como posso fazer para que ele funcione corretamente?
Olá, klsofts.
Só uma pequena correção numa boa. jQuery não é uma linguagem mais um framework desenvolvido na linguagem JavaScript. ;-)
Se você esta começando a estudar. Recomendo fortemente primeiro você entender bem a linguagem JavaScript.
Vou considerar que você está começando e te mostrar como fica um Slide Show com HTML, CSS e JavaScript.
O HTML é responsável pelo conteúdo, marcação (tags), semântica e a partir do HTML5 nós podemos dizer que também cuida da parte de estrutura de dados, de uma forma mais feliz por conta das tags: <header>, <article>, <aside>, <footer> e muitas outras. Se quiser saber mais sobre as tags do HTML5, vale a pena dar uma olhada na MDN (Mozina Developer Network).
O CSS é responsável pela camada visual e no CSS3 foi adicionado a parte de animação (sim animação é visual, mas antes do CSS3 não dava pra fazer isso com CSS era feito com JavaScript).
O JavaScript é a camada que cuida da parte de comportamento e interação.
É realmente importante não misturar essas camadas pra facilitar a manutenção do código e outros motivos bacanas que você vai sacar conforme for desenvolvendo.
Bom já que temos uma boa ideia de como funciona as coisas. Bora ir pro exemplo do Slide Show:
HTML (index.html)
<!DOCTYPE html>
CSS (reset.css)
* {
html, body {
body {
ol, ul, li {
button {
CSS (menu.css)
CSS (button.css)
.button.isDisabled { .button:hover:not(.isDisabled) {CSS (slideShow.css)
.slideShow[data-position="0"] { .slideShow[data-position="1"] { .slideShow[data-position="2"] {JavaScript (slideShow.js)
Se ficar qualquer dúvida só falar que explico! :-)