Criar Carrossel de Imagens com HTML, CSS e JavaScript
Aprenda criar um carrossel de imagens com HTML, CSS e JavaScript. Veja código completo, passo a passo e copie pronto para usar no seu site.
Um carrossel de imagens pode ser feito só com HTML, CSS e JavaScript puro: as imagens ficam numa div .slides em flexbox, o CSS desloca o conjunto com transform: translateX() e uma transição suave, e o JavaScript controla o índice atual nos botões e no setInterval, que troca de slide a cada 3 segundos.
Para baixar os arquivos utilizados na aula, preencha:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
Introdução
Você já pensou em deixar seu site mais moderno e dinâmico? Um carrossel de imagens é uma forma simples e poderosa de destacar conteúdos visuais. Com HTML, CSS e JavaScript, você consegue criar esse recurso de forma rápida e totalmente personalizada.
Neste guia, você vai aprender a criar um carrossel de imagens com HTML CSS JavaScript completo. O código já está pronto para você copiar e usar. Além disso, verá como adicionar botões de navegação, transições suaves e até um sistema automático de rotação das imagens.
No final, você terá um componente funcional para aplicar em qualquer projeto, sem precisar de bibliotecas externas.
Estrutura Inicial do Projeto
O primeiro passo é organizar os arquivos. Você pode separar em três documentos (index.html, style.css e script.js) ou unir tudo em um único arquivo HTML.
Estrutura básica do HTML
<div class="carrossel">
<div class="slides">
<img src="imagens/img1.jpg" alt="Carrossel HTML CSS Imagem 1">
<img src="imagens/img2.jpg" alt="Carrossel HTML CSS Imagem 2">
<img src="imagens/img3.jpg" alt="Carrossel HTML CSS Imagem 3">
</div>
<button class="esquerda">❮</button>
<button class="direita">❯</button>
</div>- A
div.slidescontém as imagens. - Os botões servem para navegar para frente e para trás.

Estilos com CSS
Agora, vamos centralizar o carrossel, definir dimensões e estilizar botões.
Reset inicial
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}Centralizando o carrossel
body {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}Carrossel estilizado
.carrossel {
max-width: 400px;
overflow: hidden;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.25);
}
.slides {
display: flex;
transition: transform 0.5s ease-in-out;
}
.slides img {
max-width: 100%;
object-fit: contain;
display: block;
}Botões de navegação
button {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 35px;
height: 35px;
border-radius: 50%;
border: none;
background: black;
color: white;
font-size: 20px;
cursor: pointer;
transition: background-color 0.2s ease;
}
button:hover {
background-color: rgba(0,0,0,0.75);
}
.esquerda { left: 10px; }
.direita { right: 10px; }
Funcionalidades com JavaScript
O JavaScript faz o carrossel ganhar vida. Ele controla a transição entre as imagens manualmente e automaticamente.
Seleção dos elementos
const slides = document.querySelector('.slides');
const imagens = document.querySelectorAll('.slides img');
const btnEsq = document.querySelector('.esquerda');
const btnDir = document.querySelector('.direita');
let index = 0;Exibir imagem correta
function mostrarSlide() {
slides.style.transform = `translateX(${-index * 100}%)`;
}Botões de navegação
btnDir.addEventListener('click', () => {
index = (index + 1) % imagens.length;
mostrarSlide();
});
btnEsq.addEventListener('click', () => {
index = (index - 1 + imagens.length) % imagens.length;
mostrarSlide();
});Carrossel automático
setInterval(() => {
index = (index + 1) % imagens.length;
mostrarSlide();
}, 3000);
Resultado Final
Após unir HTML, CSS e JavaScript, o resultado é um carrossel funcional:
- Troca automática de imagens a cada 3 segundos.
- Botões de navegação para controle manual.
- Transições suaves entre os slides.
Esse carrossel pode ser adaptado para portfólios, e-commerces ou páginas institucionais.
Leia também:
- Flexbox CSS - Aprenda a criar um Layout Flexível
- Como aprender JavaScript do zero – Guia para iniciantes
Fontes externas:
Perguntas frequentes
1. Como o carrossel troca as imagens sem plugin?
As imagens ficam lado a lado dentro da div .slides, que usa display flex. O JavaScript aplica transform: translateX() com deslocamento proporcional ao índice atual, e a transition de 0.5s definida no CSS anima o movimento. Nenhuma biblioteca externa é necessária — o efeito inteiro sai com HTML, CSS e JavaScript puro.
2. Como pausar o carrossel automático quando o mouse está sobre ele?
Guarde o setInterval numa variável, como let timer = setInterval(mostrarSlide, 3000), e adicione dois eventos ao carrossel: mouseenter chamando clearInterval(timer) para pausar, e mouseleave recriando o intervalo para retomar a rotação. É um ajuste de poucas linhas que melhora a experiência de quem parou para ver uma imagem.
3. Preciso saber muito JavaScript para criar esse carrossel?
O carrossel completo usa cerca de vinte linhas de JavaScript com três recursos básicos: querySelector para selecionar os elementos, addEventListener para os cliques nos botões e setInterval para a troca automática. Se você já conhece variáveis e funções, consegue montar o código e adaptá-lo ao seu projeto sem complicação.
4. Onde vale a pena usar um carrossel de imagens?
Em portfólios, vitrines de e-commerce e páginas institucionais, quando vários conteúdos visuais disputam o mesmo espaço da tela. Prefira poucas imagens, comprimidas e do mesmo tamanho, e mantenha os botões de navegação visíveis para o visitante controlar o ritmo — a troca automática segue rodando como complemento.
Conclusão
Criar um carrossel de imagens com HTML CSS JavaScript é mais fácil do que parece. Com alguns blocos de código, você adiciona dinamismo ao site e melhora a experiência do visitante.
👉 Quer dominar de vez HTML, CSS e JavaScript? Acesse agora o curso completo de desenvolvimento web.
FAQ
1. Posso usar esse carrossel em qualquer site?
Sim. Basta copiar o código e ajustar os caminhos das imagens.
2. O carrossel funciona em celulares?
Funciona em dispositivos móveis, mas você pode ajustar o CSS para garantir total responsividade.
3. É possível adicionar mais imagens?
Sim. Basta incluir novas tags <img> dentro da div.slides. O JavaScript já trata a quantidade automaticamente.
4. Preciso de bibliotecas externas como jQuery?
Não. Todo o código é feito com JavaScript puro.
5. Como mudar a velocidade da troca automática?
Altere o valor 3000 no setInterval. Esse número representa milissegundos (3000 = 3 segundos).
Hashtag Treinamentos
Para acessar publicações de JavaScript, clique aqui!
Posts mais recentes de HTML e CSS
- LESS CSS: Guia Completo do Pré-processador (2026)LESS CSS é um pré-processador que adiciona variáveis, mixins, nesting e operações matemáticas ao CSS. Aprenda a configurar e usar com projeto prático.
- Variáveis no CSS (CSS Variables): Como Usar de Forma ProfissionalVocê sabe o que são Variáveis no CSS (CSS Variables)? Aprenda como usar técnicas que vão transformar a forma como você escreve variáveis CSS.
- Display CSS: Nova Sintaxe e Como UsarAprenda a usar a propriedade display CSS com a nova sintaxe de múltiplos valores. Veja exemplos práticos e descubra como combinar estilos em um único comando.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.









