Como Criar Um Plugin De Carrossel De Imagens Com Css Puro
Published:
-
Updated:
Existem vários plugins para jQuery, React e até mesmo Angular para criar um carrossel de imagens, mas é possível criar utilizando apenas CSS puro.
Elementos de um carrossel
Stage: A área disponível para o carrossel
Item: O item visível atualmente pelo usuário
Next/Prev Buttons: Os botões para passar aos items anteriores/próximos, que normalmente estão ocultos
Updates:
2021-01-25
movido código para CodeSandbox
revisão do texto do post
grande redução no código fonte
Conceito
Vamos utilizar inputs do tipo radio, que estarão ocultos para os usuários, em conjunto com a tag label com o atributo for="", que ao ser clicada, automaticamente checa um radio que tenha o id correspondente.
Todos os input radio terão o mesmo atributo name, assim o próprio navegador se encarrega de desmarcar e marcar os radios sem a necessidade de JavaScript.
Estrutura HTML do carrossel de images
Utilizaremos 4 inputs do tipo rádio pra controlar 4 imagens no carrossel. Repare que o primeiro item não tem o botão “anterior” e o último não tem o botão “próximo”.
A primeira coisa que precisamos fazer é ocultar os inputs para o usuário. Será utilizada a técnica de mover o elemento para fora do viewport, pois alguns navegadores tratam inputs “ocultos” como estando desabilitados. Desta maneira o input fica invisível, mas ainda é um elemento válido para os navegadores.
Posicionamento dos botões Próximo / Anterior. Repare que o elemento stage é quem tem posicionamento relative, então todos os botões serão alinhados a ele. Como os botões terão sua visibilidade oculta por padrão, ao movimentarmos de um item para o outro, vamos exibir os botões corretamente, dando uma ilusão para o usuário que o botão não mudou.