JSFiddle - React, Tailwind, and code Playground

HTML

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="robots" content="noindex, nofollow">
    <link rel="stylesheet" href="css/style.css">
    <title>Values</title>
</head>
 
<body>
    <div class="wrapper">
        <main>
            <div class="block js-counter-numbers-wrapper">
                <div class="block__container">
                    <div class="block__grid">
                        <div class="block__item_grid block__item_grid--info-mod">
                            <div class="block__row">
                                <div class="block__col">
                                    <div data-number="2800" class="block__numbers js-counter-numbers">
                                        <div class="block__number_sizer">2800</div>
                                        <div class="block__number js-counter-number">0</div>
                                    </div>
                                    <div class="block__text">
                                        <p>Projects</p>
                                    </div>
                                </div>
                                <div class="block__col">
                                    <div data-number="106" class="block__numbers js-counter-numbers">
                                        <div class="block__number_sizer">1060</div>
                                        <div class="block__number js-counter-number">0</div>
                                    </div>
                                    <div class="block__text">
                                        <p>Years</p>
                                    </div>
                                </div>
                            </div>
                            <div class="block__row">
                                <div class="block__col">
                                    <div data-number="1700"...

JavaScript

function counterNumbers() {
    const SELECTORS = {
        wrapper: ".js-counter-numbers-wrapper",
        numbers: ".js-counter-numbers",
        number: ".js-counter-number",
    };
  
    const $wrappers = document.querySelectorAll(SELECTORS.wrapper);
  
    if (!$wrappers.length) return;
 
    const TIME_COUNT = 6000;  // Время счета
 
    function counter ($wrapper, timeCount) {
        const $numbers = $wrapper.querySelectorAll(SELECTORS.numbers);
        if (!$numbers.length) return;
 
        const $numbersText = $wrapper.querySelectorAll(SELECTORS.number);
         
        const endValues = [];
          
        $numbers.forEach(($numberWrapper) => {
            const endValue = parseInt($numberWrapper.dataset.number);
            endValues.push (endValue);
        })
 
        const timeStart = performance.now();
          
        function showNumbers (currentTime) {
            let part = (currentTime - timeStart) / timeCount;
            if (part > 1) part = 1;
            for (let i = 0; i < $numbersText.length; i++) {
                let lang ='';
                const ptl = $numbersText[i].closest('[lang]');
                if (ptl) {
                    lang = ptl.getAttribute('lang')
                }
                const form = new Intl.NumberFormat(lang);
                const value = Math.round( part * endValues[i]);
                $numbersText[i].textContent = form.format(value);
            }
            if (part < 1) requestAnimationFrame(showNumbers);
        }
         
        requestAnimationFrame(showNumbers);
    }
  
    $wrappers.forEach(($wrapper) => {
        counter ($wrapper, TIME_COUNT);
    });
}
window.addEventListener("load", () => {
    counterNumbers();
});