JSFiddle - React, Tailwind, and code Playground
by avgustre
HTML
<script src="https://www.jqueryscript.net/demo/Number-Increment-Animations-with-jQuery-spincrement/jquery.spincrement.js"></script>
<div class="benefits">
<div class="benefits__inner">
<h1 class="benefits__header">
О компании в цифрах
</h1>
<div class="benefits__element">
<img class="benefits__icon" src="./img/workers.svg" alt="Сотрудники">
<p class="benefits__number">10000</p>
<p class="benefits__title">сотрудников по всему миру</p>
</div>
<div class="benefits__element">
<img class="benefits__icon" src="./img/projects.svg" alt="Проекты">
<p class="benefits__number">500</p>
<p class="benefits__title">успешных проектов в год</p>
</div>
<div class="benefits__element">
<img class="benefits__icon" src="./img/calendar.svg" alt="Опыт">
<p class="benefits__number">15</p>
<p class="benefits__title">лет в сфере разработки сайтов</p>
</div>
</div>
</div>
CSS
.benefits {
width: 100%;
background: #151d2d;
}
.benefits__inner {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
max-width: 1140px;
margin: 0 auto;
padding: 60px 0;
}
.benefits__header {
width: 100%;
text-align: center;
line-height: 1.3;
padding: 0 15px 60px;
color: #e2e2e2;
font-size: 2rem;
text-transform: uppercase;
}
.benefits__element {
width: 30%;
}
.benefits__icon {
display: block;
width: 60px;
height: 50px;
margin: 0 auto;
margin-bottom: 20px;
}
.benefits__element p {
color: #cdcdcd;
text-align: center;
line-height: 1.3;
}
.benefits__number {
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 20px
}
.benefits__title {
font-size: 1.125rem;
}
JavaScript
var show = true;
var countbox = ".benefits__inner";
$(window).on("scroll load resize", function () {
if (!show) return false; // Отменяем показ анимации, если она уже была выполнена
var w_top = $(window).scrollTop(); // Количество пикселей на которое была прокручена страница
var e_top = $(countbox).offset().top; // Расстояние от блока со счетчиками до верха всего документа
var w_height = $(window).height(); // Высота окна браузера
var d_height = $(document).height(); // Высота всего документа
var e_height = $(countbox).outerHeight(); // Полная высота блока со счетчиками
if (w_top + 500 >= e_top || w_height + w_top == d_height || e_height + e_top < w_height) {
$('.benefits__number').css('opacity', '1');
$('.benefits__number').spincrement({
thousandSeparator: "",
duration: 2000
});
show = false;
}
});