我已经完成了内容旋转器的基础知识,唯一的问题是它不会将自身循环回到开头,我无法弄清楚原因!这是一个非常简单的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;
}
}
}
它一直停在列表的末尾,基本上我只想让它循环。有什么帮助吗?
答案 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"
当你到达和循环时。