我需要淡入几个列表元素,然后淡出它们并重新开始。我已经获得了我在此处找到的代码:http://jsfiddle.net/mqthK/,这里指出了Jquery: Fade multiple elements one after the other。但是,我需要递归地运行这个代码(即 - 淡出所有元素,然后再次调用该函数并重新开始)。
有人可以为此分享正确的代码吗?
谢谢!
答案 0 :(得分:1)
如果您更新到jQuery 1.4.4或更高版本,则可以使用fadeToggle
方法。
如果选择了要淡化的所有元素,并将下一个元素的索引发送到显示/隐藏,则可以轻松循环并重新启动:
function fadeLI(elem, idx) {
elem.eq(idx).fadeToggle(500, function() {
fadeLI(elem, (idx + 1) % elem.length);
});
}
fadeLI($("#list li"), 0);
答案 1 :(得分:0)
检查是下一个元素;如果没有,你就在列表的末尾;然后将所有内容淡出并使用第一个元素运行。
答案 2 :(得分:0)
将fadeLI更改为:
工作示例:http://jsfiddle.net/mqthK/45/
function fadeLI(elem, show) {
if(elem.length == 0){
fadeLI($("#list li:first"));
}
if(elem.is(":visible")){
elem.fadeOut(500, function() {
fadeLI($(this).next());
});
}
else{
elem.fadeIn(500, function() {
fadeLI($(this).next());
});
}
}