0

我似乎无法理解我必须在这里做什么。我正在尝试创建一个简单的图像幻灯片,并试图弄清楚如何使它工作。它没有通过我的 for 循环,我不明白为什么。这是我的代码的一个小提琴:http: //jsfiddle.net/xnEGt/

4

1 回答 1

1

这里:http: //jsfiddle.net/xnEGt/6/

什么问题:

  1. 图片必须首先通过 CSS 隐藏,只有第一张图片可见
  2. 通过使用 for 循环,所有图像将只显示一次。请注意, .delay() 不会影响循环,因此所有迭代都将立即进行
  3. 您可以通过使用 setTimeout 的递归实现来解决此问题
  4. .get(0).get(1)选择器也错了,nth-child(i)改用。

    var slideCount = $('.slider div.slide').length;
    nextPic(0);
    
    function nextPic(i){
    
        var next = (i+1)%(slideCount+1);
    
        $('.slider div:nth-child('+i+')').fadeOut(100);
        $('.slider div:nth-child('+next+')').fadeIn(100);  
    
        setTimeout(function(){nextPic(next);},1000);
    }
    

    或者使用.get()选择器的更紧凑的实现:http: //jsfiddle.net/xnEGt/7/

于 2012-07-03T07:15:13.310 回答