Carousel with prog
by kayenglajom
HTML
<div class="container py-3">
<h3>Carousel with Progress Bar</h3>
<div class="progress my-2">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="1" aria-valuemin="1" aria-valuemax="5" style="width: 20%;">
Step 1
</div>
</div>
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-buttons d-flex">
<div class="flex-grow-1"><a class="btn btn-primary btn-block rounded-0" data-target="#myCarousel" data-slide-to="0" href="#">One</a></div>
<div class="flex-grow-1"><a class="btn btn-primary btn-block rounded-0" data-target="#myCarousel" data-slide-to="1" href="#">Two</a></div>
<div class="flex-grow-1"><a class="btn btn-primary btn-block rounded-0" data-target="#myCarousel" data-slide-to="2" href="#">Three</a></div>
<div class="flex-grow-1"><a class="btn btn-primary btn-block rounded-0" data-target="#myCarousel" data-slide-to="3" href="#">Four</a></div>
</div>
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
<li data-target="#myCarousel" data-slide-to="3"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active" data-step="1">
<img src="http://placehold.it/1100x400/333?text=1">
<div class="container">
<div class="carousel-caption">
</div>
</div>
</div>
<div class="carousel-item" data-step="2">
<img src="http://placehold.it/1100x400/888?text=2">
<div class="container">
<div class="carousel-caption">
</div>
</div>
</div>
<div...
CSS
/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */
/* Since positioning the image, we need to help out the caption */
.carousel-caption {
z-index: 10;
}
/* Declare heights because of positioning of img element */
.carousel .carousel-item {
height: 400px;
background-color:#bbb;
}
.carousel img {
position: absolute;
top: 0;
left: 0;
min-width: 100%;
}
JavaScript
var totalSteps = 4;
$('#myCarousel').carousel();
$('#myCarousel').on('slide.bs.carousel', function (e) {
//update progress
var step = $(e.relatedTarget).data('step');
var percent = (parseInt(step) / totalSteps) * 100;
$('.progress-bar').css({width: percent + '%'});
$('.progress-bar').text("Step " + step);
})