In this tutorial we will see how to create a Loading Bar Using Jquery and CSS. JQuery .animate() method and .width() method are used for this purpose.
Table of Contents
HTML Code
HTML Code is given below.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Loading Bar Using Jquery and CSS</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<div class='outer'>
<div class="inner">
<span class="value"></span>
</div>
</div>
</body>
</html>
CSS Code
CSS Code is given below, The width of inner div is set to 0 initially which is then increased with help of Jquery. The value of loading bar is displayed in the middle using position property of CSS.
body {
margin: 0;
padding: 0;
font-family: 'Open Sans',sans-serif;
display: flex;
height: 100vh;
justify-content: center;
align-items: center;
background-color: #58fc87;
}
.inner {
width: 0px;
height: 40px;
background: #22438c;
position: relative;
}
.outer {
border: 1px solid #000;
width: 800px;
background: #fff;
}
.value {
position: absolute;
right: 0;
top: 25%;
color: #fff;
font-size: 14px;
}
JQuery Code
JQuery Code is given below, In this code we are increasing or animating the width of inner div using .animate() method of Jquery. The width of loading bar is calculated using .width() method with respect to the outer div.
This value is then used as textual content of span element. This tells the percentage of the bar that has been loaded. step: function is used for this purpose while the text content is removed using complete function once the bar is completely loaded.
<script>
$(document).ready(function() {
$(".inner").animate({
width: "100%"},
{
duration: 7000,
step: function() {
let width = $(this).width() / $('.inner').parent().width() * 100;
width = Math.ceil(width) + "%";
$(".value").text(width);
},
complete: function() {
$(".value").text("");
}
});
});
</script>
Demo
Video Tutorial
Watch video tutorial on how to create Loading Bar Using Jquery and CSS.