Bootstrap 5
Owl Carousel
Carousel Template
Slider Ui
Snippets Html
5 Exemples modernes et responsives dans des owl carousel en Bootstrap 5.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="copyright" content="MEZGANI Said" />
<meta name="author" content="AngularForAll" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Snippets Owl Carousel Bootstrap 5 01 | AngularForAll</title>
<!-- Bootstrap 5 + Icons -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<!-- Owl Carousel CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<!-- jQuery (requis pour Owl Carousel) -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
min-height: 100vh;
padding: 40px 0;
}
.header {
text-align: center;
margin-bottom: 40px;
color: white;
}
.header h1 {
font-weight: 700;
font-size: 2.5rem;
text-shadow: 0 4px 20px rgba(0,0,0,0.3);
letter-spacing: -0.5px;
}
.header p {
font-size: 1.1rem;
opacity: 0.9;
font-weight: 300;
}
.badge-counter {
background: rgba(255,255,255,0.1);
backdrop-filter: blur(10px);
padding: 8px 24px;
border-radius: 50px;
display: inline-block;
margin-top: 15px;
border: 1px solid rgba(255,255,255,0.2);
}
.card {
border: none;
border-radius: 24px;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(10px);
box-shadow: 0 15px 35px -8px rgba(0,0,0,0.3);
transition: all 0.3s ease;
height: 100%;
overflow: hidden;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 25px 45px -10px rgba(0,0,0,0.4);
}
.card-header-custom {
padding: 20px 24px 12px;
border-bottom: 1px solid rgba(0,0,0,0.05);
display: flex;
align-items: center;
justify-content: space-between;
}
.card-title {
font-weight: 650;
font-size: 1.2rem;
color: #1e293b;
margin: 0;
}
.badge-type {
background: linear-gradient(135deg, #e74c3c, #c0392b);
color: white;
padding: 4px 12px;
border-radius: 30px;
font-size: 0.7rem;
font-weight: 500;
}
.card-body {
padding: 20px;
}
.card-footer-custom {
padding: 12px 24px 20px;
background: transparent;
border-top: 1px solid rgba(0,0,0,0.03);
color: #64748b;
font-size: 0.85rem;
}
/* Owl Carousel personnalisation */
.owl-carousel {
border-radius: 16px;
overflow: hidden;
}
.owl-carousel .item {
position: relative;
overflow: hidden;
border-radius: 12px;
}
.owl-carousel .item img {
display: block;
width: 100%;
height: 250px;
object-fit: cover;
transition: transform 0.3s ease;
}
.owl-carousel .item:hover img {
transform: scale(1.05);
}
/* Navigation dots */
.owl-theme .owl-dots {
margin-top: 15px !important;
}
.owl-theme .owl-dots .owl-dot span {
width: 10px;
height: 10px;
margin: 5px 5px;
background: #cbd5e1;
transition: all 0.2s;
}
.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot:hover span {
background: #e74c3c;
transform: scale(1.2);
}
/* Navigation arrows */
.owl-theme .owl-nav {
margin-top: 10px;
}
.owl-theme .owl-nav [class*='owl-'] {
background: rgba(231, 76, 60, 0.8) !important;
color: white !important;
width: 36px;
height: 36px;
border-radius: 50% !important;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
transition: all 0.2s;
margin: 0 5px;
backdrop-filter: blur(5px);
}
.owl-theme .owl-nav [class*='owl-']:hover {
background: #e74c3c !important;
transform: scale(1.05);
}
/* Slide personnalisé */
.custom-slide {
height: 250px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
color: white;
border-radius: 12px;
text-align: center;
}
.custom-slide i {
font-size: 3rem;
margin-bottom: 15px;
}
.custom-slide h4 {
font-weight: 600;
margin-bottom: 8px;
}
.custom-slide p {
opacity: 0.9;
font-size: 0.95rem;
}
/* Video slide */
.video-slide {
height: 250px;
background: #000;
display: flex;
align-items: center;
justify-content: center;
}
/* Lazy load */
.owl-carousel .lazy {
background: #f0f0f0;
}
@media (max-width: 768px) {
body { padding: 20px 0; }
.header h1 { font-size: 2rem; }
.owl-carousel .item img { height: 200px; }
.custom-slide { height: 200px; }
}
</style>
</head>
<body>
<div class="container">
<!-- Header -->
<div class="header">
<h1>🦉 5 Carrousels Owl Carousel</h1>
<p>Exemples modernes avec Owl Carousel 2</p>
<div class="badge-counter">
<i class="bi bi-collection-play me-2"></i>5 exemples · Owl Carousel 2.3 · jQuery
</div>
</div>
<div class="row g-4">
<!-- Exemple 1 : Owl Classique -->
<div class="col-lg-6">
<div class="card">
<div class="card-header-custom">
<span class="card-title">
<i class="bi bi-chevron-left-right me-2"></i>Owl Classique
</span>
<span class="badge-type">Base</span>
</div>
<div class="card-body">
<div class="owl-carousel owl-theme" id="owl1">
<div class="item">
<img src="https://picsum.photos/600/350?random=101" alt="Slide 1">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=102" alt="Slide 2">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=103" alt="Slide 3">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=104" alt="Slide 4">
</div>
</div>
</div>
<div class="card-footer-custom">
<i class="bi bi-dot me-1"></i> Loop · 1 slide · Navigation + Dots
</div>
</div>
</div>
<!-- Exemple 2 : Owl Multiple Items -->
<div class="col-lg-6">
<div class="card">
<div class="card-header-custom">
<span class="card-title">
<i class="bi bi-grid-3x3 me-2"></i>Multiple Items
</span>
<span class="badge-type">Responsive</span>
</div>
<div class="card-body">
<div class="owl-carousel owl-theme" id="owl2">
<div class="item">
<img src="https://picsum.photos/400/250?random=201" alt="Slide 1">
</div>
<div class="item">
<img src="https://picsum.photos/400/250?random=202" alt="Slide 2">
</div>
<div class="item">
<img src="https://picsum.photos/400/250?random=203" alt="Slide 3">
</div>
<div class="item">
<img src="https://picsum.photos/400/250?random=204" alt="Slide 4">
</div>
<div class="item">
<img src="https://picsum.photos/400/250?random=205" alt="Slide 5">
</div>
<div class="item">
<img src="https://picsum.photos/400/250?random=206" alt="Slide 6">
</div>
</div>
</div>
<div class="card-footer-custom">
<i class="bi bi-phone me-1"></i> Responsive : 1 (mobile) → 3 (desktop)
</div>
</div>
</div>
<!-- Exemple 3 : Owl Auto-play -->
<div class="col-lg-6">
<div class="card">
<div class="card-header-custom">
<span class="card-title">
<i class="bi bi-play-circle me-2"></i>Auto-play
</span>
<span class="badge-type">Automatique</span>
</div>
<div class="card-body">
<div class="owl-carousel owl-theme" id="owl3">
<div class="item">
<img src="https://picsum.photos/600/350?random=301" alt="Slide 1">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=302" alt="Slide 2">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=303" alt="Slide 3">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=304" alt="Slide 4">
</div>
<div class="item">
<img src="https://picsum.photos/600/350?random=305" alt="Slide 5">
</div>
</div>
</div>
<div class="card-footer-custom">
<i class="bi bi-hourglass-split me-1"></i> Auto-play 2s · Pause au hover · Loop infini
</div>
</div>
</div>
<!-- Exemple 4 : Owl avec Contenu Personnalisé -->
<div class="col-lg-6">
<div class="card">
<div class="card-header-custom">
<span class="card-title">
<i class="bi bi-palette me-2"></i>Contenu Personnalisé
</span>
<span class="badge-type">Custom</span>
</div>
<div class="card-body">
<div class="owl-carousel owl-theme" id="owl4">
<div class="item">
<div class="custom-slide" style="background: linear-gradient(135deg, #e74c3c, #c0392b);">
<i class="bi bi-shield-check"></i>
<h4>Sécurité</h4>
<p>Protection avancée des données</p>
</div>
</div>
<div class="item">
<div class="custom-slide" style="background: linear-gradient(135deg, #3498db, #2980b9);">
<i class="bi bi-lightning-charge"></i>
<h4>Performance</h4>
<p>Rapidité et efficacité</p>
</div>
</div>
<div class="item">
<div class="custom-slide" style="background: linear-gradient(135deg, #2ecc71, #27ae60);">
<i class="bi bi-cloud-upload"></i>
<h4>Cloud</h4>
<p>Accès partout, tout le temps</p>
</div>
</div>
<div class="item">
<div class="custom-slide" style="background: linear-gradient(135deg, #f39c12, #e67e22);">
<i class="bi bi-people"></i>
<h4>Collaboration</h4>
<p>Travaillez ensemble</p>
</div>
</div>
</div>
</div>
<div class="card-footer-custom">
<i class="bi bi-star me-1"></i> Slides avec dégradés, icônes et texte
</div>
</div>
</div>
<!-- Exemple 5 : Owl Lazy Load + Animate -->
<div class="col-lg-12">
<div class="card">
<div class="card-header-custom">
<span class="card-title">
<i class="bi bi-hourglass me-2"></i>Lazy Load + Animate.css
</span>
<span class="badge-type">Performance</span>
</div>
<div class="card-body">
<div class="owl-carousel owl-theme" id="owl5">
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=501" alt="Slide 1">
</div>
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=502" alt="Slide 2">
</div>
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=503" alt="Slide 3">
</div>
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=504" alt="Slide 4">
</div>
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=505" alt="Slide 5">
</div>
<div class="item">
<img class="owl-lazy" data-src="https://picsum.photos/800/400?random=506" alt="Slide 6">
</div>
</div>
</div>
<div class="card-footer-custom">
<i class="bi bi-lightning me-1"></i> Lazy loading · Animation fade · 4 items desktop
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="text-center mt-5">
<p class="text-white-50">
<i class="bi bi-code-square me-1"></i>
5 exemples Owl Carousel 2 · jQuery · Responsive · Touch-friendly
</p>
</div>
</div>
<!-- Owl Carousel JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
<script>
(function($) {
'use strict';
$(document).ready(function() {
// Exemple 1 : Owl Classique
$('#owl1').owlCarousel({
loop: true,
margin: 10,
nav: true,
dots: true,
items: 1,
autoplay: false,
navText: ['<i class="bi bi-chevron-left"></i>', '<i class="bi bi-chevron-right"></i>'],
responsive: {
0: { items: 1 },
600: { items: 1 },
1000: { items: 1 }
}
});
// Exemple 2 : Multiple Items (Responsive)
$('#owl2').owlCarousel({
loop: true,
margin: 15,
nav: true,
dots: true,
navText: ['<i class="bi bi-chevron-left"></i>', '<i class="bi bi-chevron-right"></i>'],
responsive: {
0: { items: 1 },
576: { items: 2 },
992: { items: 3 }
}
});
// Exemple 3 : Auto-play
$('#owl3').owlCarousel({
loop: true,
margin: 10,
nav: false,
dots: true,
items: 1,
autoplay: true,
autoplayTimeout: 2000,
autoplayHoverPause: true,
smartSpeed: 450,
responsive: {
0: { items: 1 },
600: { items: 1 },
1000: { items: 1 }
}
});
// Exemple 4 : Contenu Personnalisé
$('#owl4').owlCarousel({
loop: true,
margin: 20,
nav: true,
dots: true,
navText: ['<i class="bi bi-chevron-left"></i>', '<i class="bi bi-chevron-right"></i>'],
responsive: {
0: { items: 1 },
768: { items: 2 },
1200: { items: 3 }
}
});
// Exemple 5 : Lazy Load + Plusieurs items
$('#owl5').owlCarousel({
loop: true,
margin: 15,
nav: true,
dots: true,
lazyLoad: true,
lazyLoadEager: 2,
animateOut: 'fadeOut',
navText: ['<i class="bi bi-chevron-left"></i>', '<i class="bi bi-chevron-right"></i>'],
responsive: {
0: { items: 1 },
576: { items: 2 },
768: { items: 3 },
1200: { items: 4 }
}
});
// Ajouter animation fadeOut personnalisée
$.fn.owlCarousel.Constructor.Plugins.Animate = class {
next(speed) {
this._core.$el.find('.owl-item').removeClass('animated fadeOut');
this._core.$el.find('.owl-item.active').addClass('animated fadeOut');
}
prev(speed) {
this._core.$el.find('.owl-item').removeClass('animated fadeOut');
this._core.$el.find('.owl-item.active').addClass('animated fadeOut');
}
};
});
})(jQuery);
</script>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Ouvrir cet aperçu dans un nouvel onglet du navigateur
🔗 Ouvrir dans le navigateur