0

简单易行。

我正在尝试在 div 中旋转图像并在到达数组末尾时循环回到第一个。有人可以帮我指出我的代码哪里出错了吗?似乎当它到达第二个图像时,索引永远不会回到零以再次从我的数组中的第一个图像开始。

var images = new Array ('.advert1', '.advert2');
var index = 0;

function rotateImage()
{

$(images[index]).fadeOut('fast', function()
{
    index++;        

    $(images[index]).fadeIn('fast', function()
    {

        if (index == images.length-1)
        {
            index = 0;
        }

    });
});
}

每 5 秒调用一次 setInterval。

 setInterval (rotateImage, 5000);

非常感谢!

4

1 回答 1

1

您需要在使用它之前检查索引是否已超出范围。

function rotateImage()
{

  $(images[index]).fadeOut('fast', function()
   {
       index++;
       if (index == images.length)
           {
               index = 0;
           }
       $(images[index]).fadeIn('fast');
   });
}

那是因为当您的函数被调用并且index为 1 时,它将变为 2,然后尝试淡入images[2]其中会失败...

于 2010-11-11T10:54:08.483 回答