carousel setInterval autoplay not working

时间:2015-10-12 02:59:04

标签: javascript jquery carousel setinterval autoplay

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

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

这个轮播是一个div框,在-883px左边的边缘移动。我希望它每5秒左右自动滚动(思考设置间隔将是使用的逻辑)。

我有其他js处理用于手动导航旋转木马的点击功能,但我不认为他们应该影响自动播放。然而,它们与上面的js存在于同一个文件中。

只需要让自动播放工作,不知道为什么我的js不这样做。

1 个答案:

答案 0 :(得分:0)

脚本中存在多个问题。

  1. 变量count被声明为方法的本地变量,因此在每次调用时,它将被启动到0,导致第一个if块执行。
  2. 由于您使用了不同的if块,因此每次迭代都会评估每个if块,因此只会影响最后一个块的值
  3. 由于您没有保证金值的常数逻辑,我认为您可以使用一系列保证金值,如

    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);