【发布时间】:2016-08-18 17:47:57
【问题描述】:
我正在向下滚动到我网站的某个点,然后我调用 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>
【问题讨论】:
-
ID 在文档上下文中必须是唯一的...改用类。无论如何,在您发布的代码中,每个循环都是无用的,大多数 jQuery 原型方法(setter)在匹配集中的多个元素上工作,内部循环
标签: jquery html jquery-animate