JSFiddle - React, Tailwind, and code Playground

HTML

<div id="container">
    SCROLL DOWN SCROLL DOWN<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    SCROLL DOWN SCROLL DOWN<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    SCROLL DOWN SCROLL DOWN<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br>
    Create space<br><br><br><br>
    
    <div class="q-titles">Stop percentage animation after the first scroll down</div>
    <div class="wrap">
    <div class="bar">
        <div class="barfill" data-width="90%"><span>test 1</span></div>
    </div>
    <div class="bar">
        <div class="barfill" data-width="32%"><span>test 2</span></div>
    </div>
    <div class="bar">
        <div class="barfill" data-width="20%"><span>test 3</span></div>
    </div>
    </div>
</div>

CSS

body {
    background: #444;
    
}
#container { 
    width: 80%; 
    height: auto;
    color:#000;
    font-size: 10px;
    font-family: tahoma;
    text-transform: uppercase;
  
}
.bar { 
    background-color: rgba(0,0,0,.2); 
    position: relative;
    height: 20px; 
    line-height: 20px;
    width: 100%; 
    border-radius: 2px; 
    margin-bottom: 10px;
    color:#fff;
}
.barfill { 
    height: 100%; 
    width: 0; 
    background-color: rgba(0,0,0,.9); 
    border-radius: 4px; 
    line-height: 20px; 
    text-align: left;
}
.barfill span {
    padding-left: 10px;
}

.perctext {
    position:absolute; 
    text-align: center;
    top: 0; 
    line-height:20px; 
    left:-100px;
    padding:0 5px;
    height:20px;
    width:25px;
}

JavaScript

var counter = 0;
$(window).scroll(toDiv);
function toView(elem) {
    if (counter > 0) return false;      
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();
    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();    
    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
     
}
function toDiv() {
    if (toView(
        $(".wrap"))) 

        $('.barfill').each(function(){
            counter++;
            var width=$(this).data('width');
            $(this).animate({ width: width }, 500);
            var $perctext = $('<div>', {'class': 'perctext', text: width});
            $perctext.appendTo(this);
            $perctext.delay(500).each(function(a) {
                $(this).delay(a * 250).animate({
                    'left': width
                }, 1000);
            });
        });
    
    else {
         
         }
     
}