Changing a progress bar colour based on what value its progress is at. This is done using jQuery and the default Bootstrap colour classes.
The jQuery:
$(document).ready(function () { const show_percent = true; var progressBars = $(".progress-bar"); for (i = 0; i < progressBars.length; i++) { var progress = $(progressBars[i]).attr("aria-valuenow"); $(progressBars[i]).width(progress + "%"); if (show_percent) { $(progressBars[i]).text(progress + "%"); } if (progress >= "90") { //90 and above $(progressBars[i]).addClass("bg-success"); } else if (progress >= "30" && progress < "45") { $(progressBars[i]).addClass("bg-warning"); //From 30 to 44 } else if (progress >= "45" && progress < "90") { $(progressBars[i]).addClass("bg-info"); //From 45 to 89 } else { //29 and under $(progressBars[i]).addClass("bg-danger"); } } });
This will add the Bootstrap colour classes to the progress bar when its progress is at a certain conditional, you can however use custom CSS classes instead of the Bootstrap supplied packaged ones.
HTML:
<div class="container"> <div class="row mt-3 text-center"> <div class="col-12"> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 15%" aria-valuenow="15" aria-valuemin="0" aria-valuemax="100"></div> </div> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 32%" aria-valuenow="32" aria-valuemin="0" aria-valuemax="100"></div> </div> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 53%" aria-valuenow="53" aria-valuemin="0" aria-valuemax="100"></div> </div> <div class="progress"> <div class="progress-bar" role="progressbar" style="width: 91%" aria-valuenow="91" aria-valuemin="0" aria-valuemax="100"></div> </div> </div> </div> </div>
jQuery and Bootstrap:
<head> <title>Progress change colour</title> <link rel="stylesheet" href="https://write.corbpie.com/wp-content/litespeed/localres/aHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS8=ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css"/> <script src="https://write.corbpie.com/wp-content/litespeed/localres/aHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS8=ajax/libs/jquery/3.5.1/jquery.min.js"></script> </head>