使用:jQuery.appear.js
和countUp.js
插件在滚动动画(jQuery.appear.js)期间阻止滚动触发器?
我得到当用户滚动的问题,不断得到触发事件。我也尝试过不使用jQuery.appear插件并使用on.scroll(function(){});
,但我得到了相同的结果。动画完成之前的任何滚动事件都会触发动画并导致动画故障。我尝试了$(window).unbind('scroll');
这是可行的,但是那样就打破了其他的滚动动画。
var $element = $('.element');
$element.appear();
$(document.body).on('appear', '.element', function() {
var $this = $(this),
countTo = $this.attr('data-count');
$({countNum: $this.text()}).animate({
countNum: countTo
},
{
duration: 1000,
easing: 'linear',
step: function() {
$this.text(Math.floor(this.countNum));
},
complete: function() {
$this.text(this.countNum);
}
}
);
});
如何防止在动画仍在进行时触发动画的滚动事件?
结账https://jsfiddle.net/efqhgg5L/。当您在数字仍在滴答时滚动数字时,动画将无法完成。
谢谢,vellip! '.one'是一个好主意,但不幸的是,它会使动画只运行第一个计数器并跳过第二个计数器。我将不得不尝试其他建议并查看它们的工作方式。非常感谢! – tcheng
也许这不是很清楚,我知道它会跳过其他计数器,这就是为什么我发布了下面的解决方案。 :d – vellip