轮播设置间隔自动播放不起作用

carousel setInterval autoplay not working

代码:http://jsfiddle.net/n2m4absf/(不会起作用,这是为了代码显示目的而链接的)。尝试使用:

setInterval(function(){slideCard();}
, 5000);

这个旋转木马是一个 div 框,在 -883 像素的左边距块中移动。我希望它每 5 秒左右自动滚动一次(考虑设置间隔将是使用的逻辑)。

我有其他 js 可以处理点击功能以手动导航轮播,但我认为它们不应该影响自动播放。但是,它们确实与上述 js 位于同一文件中。

只需要让自动播放正常工作,但不确定为什么我的 js 没有这样做。

脚本中存在多个问题。

  1. 变量 count 被声明为方法的局部变量,因此在每次调用中它都会启动到 0 导致第一个 if 块执行。
  2. 由于您使用了不同的 if 个块,每个 if 个块将在每次迭代中得到评估,因此只有最后一个块的值会受到影响

由于边距值没有固定逻辑,我认为您可以使用边距值数组,例如

var slide = $('div.inner > ul');

var count = 0,
    margins = ['-883px', '-1686px', 0];

function slideCard() {
    slide.css('margin-left', margins[count++ % 3]);
};

setInterval(function () {
    slideCard();
}, 1000);