
Base d'un Carrousel
July 12, 2024
Comment créer un Carrousel basique avec HTML, CSS et JavaScript
Un carrousel est un excellent moyen d'afficher plusieurs éléments, comme des images ou des contenus promotionnels, dans un espace réduit de votre site web. Nous allons construire un carrousel simple en utilisant trois technologies clés :
- HTML pour structurer le carrousel et intégrer les images.
- CSS pour styliser le carrousel, positionner les éléments, et ajuster la taille des images.
- JavaScript pour dynamiser le carrousel, en gérant les transitions d'images lorsqu'on clique sur les boutons de navigation.
1. Structure HTML : L'intégration des images
Le HTML est la base de notre carrousel. Nous allons créer un conteneur principal pour héberger toutes les diapositives (les images), et ajouter deux boutons de navigation pour permettre aux utilisateurs de naviguer entre les images.
Voici un exemple de code HTML pour la structure du carrousel :
<body>
<main>
<div class="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://picsum.photos/id/250/300" alt="Image 1" />
</div>
<div class="carousel-item">
<img src="https://picsum.photos/id/237/300" alt="Image 2" />
</div>
<div class="carousel-item">
<img src="https://picsum.photos/id/259/300" alt="Image 3" />
</div>
</div>
<button class="prev">‹</button>
<button class="next">›</button>
</div>
</main>
</body>
<script src="carrousel.js"></script>
- la class .carousel : Le conteneur global du carrousel.
- la class .carousel-inner : Un élément qui contient toutes les images (diapositives).
- la class .carousel-item : Chaque diapositive individuelle.
- les class .prev et .next : Ce sont les boutons "précédent" et "suivant" qui permettent de naviguer entre les images.
2. Style avec CSS : Positionner les éléments et ajuster la taille des images
Le CSS nous permet de contrôler l'apparence du carrousel. Nous allons définir la taille du carrousel, faire en sorte que les images soient alignées en ligne, et ajouter des animations pour rendre les transitions fluides.
main {
width: 100%;
display: flex;
justify-content: center;
}
.carousel {
position: relative;
width: 100%;
max-width: 600px;
overflow: hidden;
}
.carousel-inner {
display: flex;
transition: transform 0.5s ease-in-out;
}
.carousel-item {
min-width: 100%;
}
.carousel img {
width: 100%;
object-fit: cover;
display: block;
}
button.prev,
button.next {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: rgba(0, 0, 0, 0.5);
border: none;
color: white;
padding: 10px;
cursor: pointer;
}
button.prev {
left: 10px;
}
button.next {
right: 10px;
}
- .carousel : Définit les dimensions du carrousel et masque les images qui sortent du cadre avec overflow: hidden.
- .carousel-inner : Utilise flexbox pour placer les images côte à côte et anime la transition entre les diapositives.
- .carousel-item : Chaque image occupe 100% de la largeur du conteneur pour être affichée en plein écran.
- button.prev et button.next : Les boutons sont positionnés au milieu de chaque côté du carrousel pour la navigation.
3. Interactivité avec JavaScript : Gérer la navigation entre les diapositives
Le JavaScript permet de rendre le carrousel interactif. Chaque clic sur les boutons "précédent" ou "suivant" change l'image affichée. Nous allons calculer l'indice de l'image active et ajuster la position des diapositives.
const prevButton = document.querySelector(".prev");
const nextButton = document.querySelector(".next");
const carouselInner = document.querySelector(".carousel-inner");
const items = document.querySelectorAll(".carousel-item");
let currentIndex = 0;
nextButton.addEventListener("click", () => {
currentIndex = (currentIndex + 1) % items.length;
updateCarousel();
});
prevButton.addEventListener("click", () => {
currentIndex = (currentIndex - 1 + items.length) % items.length;
updateCarousel();
});
function updateCarousel() {
const offset = -currentIndex * 100;
carouselInner.style.transform = `translateX(${offset}%)`;
}
- currentIndex : Suivre l'image active. À chaque clic, l'indice est mis à jour pour passer à l'image suivante ou précédente.
- updateCarousel() : Cette fonction ajuste la position des images en fonction de l'indice actuel.
4. Améliorations possibles
Maintenant que vous avez un carrousel fonctionnel, voici quelques idées pour l'améliorer :
- Carrousel automatique : Ajoutez une fonctionnalité d'auto-défilement avec setInterval pour que les images changent sans intervention de l'utilisateur.
- Indicateurs visuels : Ajoutez des indicateurs visuels (petits cercles en bas) pour indiquer quelle diapositive est active.
- Responsive design: Vous pouvez rendre le carrousel plus réactif avec des media queries pour différents types d'écrans.
Conclusion
Créer un carrousel est une excellente manière d'afficher des contenus de manière attrayante et interactive. En combinant HTML, CSS et JavaScript, vous pouvez personnaliser ce carrousel simple selon vos besoins. N'hésitez pas à expérimenter avec les fonctionnalités et à ajuster le style pour l'adapter à votre projet.
Dans le prochain article, nous verrons comment créer un composant Carrousel dans React, afin de rendre ce carrousel encore plus modulaire et réutilisable dans vos applications front-end modernes.

by Tristan.A
Développeur web et iOS le jour, joueur de Valorant la nuit, toujours prêt à coder un headshot ou à fragger du bug. A7Y Chris, pour vous servir !