Boa noite! Sou bem novato em javascript ainda e tenho apanhado bastante inclusive…
Estou estudando na própria apostila da Caelum um banner rotativo com botão de play e pause com duas imagens, mas a própria apostila não explica algumas coisas muito bem, já que os “desafios” devem ser feitos com auxílio do professor (quando cursei fizemos um projeto diferente). Enfim, aqui está o código em questão:
//banner rotativo
//array - o conjunto de elementos (imagens) que será usado na função do banner
var banners = ["img/destaque-home.png", "img/destaque-home-2.png"];
var bannerAtual = 0;
function trocaBanner() {
bannerAtual = (bannerAtual + 1) % 2;
document.querySelector('.destaque img').src = banners[bannerAtual];
}
//trocar a imagem a cada 4 segundos (o js mede tempo em MILÉSIMOS)
//a variável controle adicionará um botão de pause ao banner
var timer = setInterval(trocaBanner, 4000);
var controle = document.querySelector('.pause');
controle.onclick = function () {
if (controle.className === 'pause') {
clearInterval(timer);
controle.className = 'play';
} else {
timer = setInterval(trocaBanner, 4000);
controle.className = 'pause';
}
return false;
};
E para referência, o HTML/CSS do banner (a classe destaque está numa div container):
<img src="img/destaque-home.png" alt="Promoção: Big City Night">
<a href="#" class="pause play"></a>
/* banner e botões de controle */
.destaque {
margin-top: 10px;
position: relative;
}
.pause,
.play {
display: block;
position: absolute;
right: 15px;
top: 15px;
}
.pause {
border-left: 10px solid #900;
border-right: 10px solid #900;
height: 30px;
width: 5px;
}
.play {
border-left: 25px solid #900;
border-bottom: 15px solid transparent;
border-top: 15px solid transparent;
}
O problema em questão é que o botão de play/pause (que são um único botão que é transformado via CSS) simplesmente não faz nada. Peço desculpas pelo post gigante.