单击开始按钮时,它将滚动到下一个项目,但我希望它能够继续滚动。
正如您所看到的,我在动画finish()
中有一个回调函数,然后再次调用scrollNext()
来实现此功能。
然而carousel.is(':animated')
行阻止它重复。
这不应该是真的,因为它从动画回调函数的末尾调用scrollNext()
所以任何关于它为什么这样做的想法?
答案 0 :(得分:3)
看起来:动画选择器直到“结束”功能完成后才被移除。
然而,这确实有效:
function scrollNext() {
var carousel = $('ul');
if (carousel.is(':animated')) return false;
carousel.animate({ left: '-=180px' }, 400, finish);
}
function finish() {
setTimeout(scrollNext,1); //runs the function one millisecond after the finish() method is called
}
答案 1 :(得分:2)
似乎是一个时间问题。尝试:
function finish() {
setTimeout(scrollNext, 100); // adds a 100ms delay
}
答案 2 :(得分:0)
只需删除return语句并增加动画持续时间。 请参阅here。