Я прокручиваю до точки моего сайта, а затем вызываю функцию each()
для анимации всех номеров (4). Однако функция each()
работает только один раз, поэтому только один номер анимируется.каждый() достигает только одного элемента
var activated = 0;
$(window).scroll(function() {
var hT = $('#scroll-to-numbers').offset().top,
hH = $('#scroll-to-numbers').outerHeight(),
wH = $(window).height(),
wS = $(this).scrollTop();
if (wS > (hT + hH - wH)) {
if (activated == 0) {
activated = 1;
animateNumbers();
}
}
});
function animateNumbers(){
$('#number-animate').each(function() {
$(this).prop('Counter',0).animate({
Counter: $(this).text()
}, {
duration: 9000,
easing: 'swing',
step: function (now) {
$(this).text(Math.ceil(now));
}
});
});
}
<div class="row ">
<div class="col">
<h3 class="text-center">text</h3>
<p class="bodytext">
<span id="animate-number">1998</span>
</p>
</div>
<div class="col">
<h3 class="text-center">text</h3>
<p class="bodytext">
<span id="animate-number">250</span>
</p>
</div>
<div class="col">
<h3 class="text-center">text</h3>
<p class="bodytext">
<span id="animate-number">15</span>
</p>
</div>
<div class="col">
<h3 class="text-center">text</h3>
<p class="bodytext">
<span id="animate-number">350</span>
</p>
</div>
</div>
должен быть уникальным в контексте документа .. Используйте вместо этого класс. И так или иначе, в вашем опубликованном коде каждый цикл бесполезен, большинство методов jQuery protoype (setter) работают с несколькими элементами в согласованном наборе, зацикливая внутренне –