Javascript内容旋转器?

时间:2010-03-17 14:33:34

标签: javascript

我已经完成了内容旋转器的基础知识,唯一的问题是它不会将自身循环回到开头,我无法弄清楚原因!这是一个非常简单的JavaScript脚本:

window.onload = function() { setInterval("transition()", 5000); }

    function transition()
    {
        var y = document.getElementById("featured").getElementsByTagName("li");
        for (var i=0;i<y.length;i++)
        {
            if (y[i].className == "current")
            {
                y[(i+1)].className = "current";
                y[i].className = "";
                break;
            }
        }
    }

它一直停在列表的末尾,基本上我只想让它循环。有什么帮助吗?

3 个答案:

答案 0 :(得分:6)

你可以利用Javascript:

这个美妙的语言,让它变得更聪明一些
window.onload = function() {
  var y = document.getElementById('featured').getElementsByTagName('li');
  var ylen = y.length, index = 0;
  y[0].className = 'current';
  setInterval(function() {
    y[index].className = '';
    index = (index + 1) % ylen;
    y[index].className = 'current';
  }, 5000);
};

当您预先定义<li>元素列表时,您为间隔计时器提供的功能可以在每次计时器触发时引用它们。 index变量递增直到它到达数组的末尾,然后它将被设置回零。

答案 1 :(得分:1)

试试这个:

       if (y[i].className == "current") 
       { 
           if (y[i+1]]
               y[i+1].className = "current";
           else
               y[0].className = "current";
           y[i].className = ""; 
           break; 
       } 

答案 2 :(得分:0)

首次循环时,将最后一个元素类设置为“当前”。你应该加上像

这样的东西
y[0].className = "current"

当你到达和循环时。