Olá pessoal, tudo certo?
Referente ao curso HTML e CSS: responsividade com mobile-first, no capítulo Integrando o Carrossel com SwiperJS e atividade Faça como eu fiz: reutilizando código. Notei que o segundo carrossel fica com a primeira imagem expandida, ficando desconfigurado por assim dizer. Segue imagem de exemplo:
Através de um pouco de pesquisa e prompts bem estruturados com I.A, descobri um solução para esse erro que muitos vem relatando, e que outros podem futuramente relatar. Se o seu problema é esse, segue a baixo a solução:
Como temos dois elementos com a mesma classe .swiper, o Swiper só está inicializando corretamente o primeiro, e ignora ou entra em conflito com o segundo. Precisamos dar nomes diferentes para cada carrossel e inicializá-los separadamente. Lembrando que não sou nenhum especialista, apenas estou repassando uma forma que me ajudou a solucionar meu problema. Agora vamos lá!
Passo 1: Renomeie os containers .swiper do HTML
div class="swiper swiper-ultimos"
div class="swiper swiper-vendidos"
Passo 2: Ajuste o JavaScript para iniciar os dois separadamente:
<script>
const swiperUltimos = new Swiper('.swiper-ultimos', {
spaceBetween: 10,
slidesPerView: 3,
pagination: {
el: '.swiper-ultimos .swiper-pagination',
type: 'bullets',
},
});
</script>
<script>
const swiperVendidos = new Swiper('.swiper-vendidos', {
spaceBetween: 10,
slidesPerView: 3,
pagination: {
el: '.swiper-vendidos .swiper-pagination',
type: 'bullets',
},
});
</script>
Podem colocar os script ao final de cada carrossel, ou podem mover todas as chamadas do Swiper para um único script no final da section, assim:
<script> src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
<script>
const swiperUltimos = new Swiper('.swiper-ultimos', { ... });
const swiperVendidos = new Swiper('.swiper-vendidos', { ... });
</script>
Qualquer dúvida estou a disposição e bons estudos!
Lembrem-se que a I.A pode ser um dos seus melhores professores nessa jornada se bem utilizada.