JSFiddle - React, Tailwind, and code Playground
HTML
<div class="progress-bar">
<div class="progress-bar__inner">
<div class="progress-bar__scale"></div>
</div>
</div>
<div class="knowledge-bl__percentage">0%</div>
<div class="knowledge-bl__txt-cont">
<div class="percentage-reserve-100">100%</div>
</div>
CSS
.progress-bar {
margin-top: 1000px;
height: 48px;
border: 1px solid #cfcfcf;
padding: 5px;
}
.progress-bar__inner {
position: relative;
width: 100%;
height: 100%;
background-color: #e9ebec;
}
.progress-bar__scale {
position: absolute;
top: 0px;
left: 0px;
height: 48px;
width: 0px;
background-color: #00adef;
-webkit-transition: 1s;
transition: 1s;
}
.progress-bar__scale-25 {width: 25%;}
.progress-bar__scale-50 {width: 50%;}
.progress-bar__scale-75 {width: 75%;}
.progress-bar__scale-100 {width: 100%;}
.invis {visibility: hidden;}
.knowledge-bl__txt-cont {position: relative;}
.knowledge-bl__percentage {
float: left;
width: 260px;
margin-top: 36px;
margin-left: 7px;
font-size: 98px;
font-weight: 700;
color: #00adef;
margin-bottom: 1000px;
}
.percentage-reserve-100 {
position: absolute;
width: 260px;
top: 36px;
left: 7px;
font-size: 98px;
font-weight: 700;
color: #00adef;
display: none;
}
.db {display: block !important;}
JavaScript
$(window).scroll(function(){
if ($(this).scrollTop()<=4350)
{
$(".knowledge-bl__percentage").html("0%");
}
if ($(this).scrollTop()>600)
{
$(".progress-bar__scale").addClass('progress-bar__scale-25');
$(".knowledge-bl__percentage").html("25%");
}
if ($(this).scrollTop()>700)
{
$(".progress-bar__scale").addClass('progress-bar__scale-50');
$(".knowledge-bl__percentage").html("50%");
}
if ($(this).scrollTop()>800)
{
$(".progress-bar__scale").addClass('progress-bar__scale-75');
$(".knowledge-bl__percentage").html("75%");
}
if ($(this).scrollTop()>900)
{
$(".progress-bar__scale").addClass('progress-bar__scale-100');
$(".knowledge-bl__percentage").html("100%");
$(".percentage-reserve-100").addClass('db');
$(".knowledge-bl__percentage").addClass('invis');
}
});