如何最好地骑自行车穿过李并重复?
我应该使用计时器还是有更好的方法?
例如,我想一次显示一个li。当我到达终点时,我想回到顶部并重新开始。
答案 0 :(得分:1)
不确定我是否正确理解了你的问题,但我会对它进行抨击。
定时器在执行动画时很有用,或者如果你认为会有很多迭代(以免占用线程)。
如果您只是创建一些LI元素并将它们附加到UL元素,并且您不希望它们以递增方式显示(例如在动画中),只需使用for循环。
答案 1 :(得分:1)
新的jQuery delay()
可以派上用场。
$(document).ready(function(){
$('ul li').hide();
function loopLi(element){
element.fadeIn('slow').delay(5*1000).fadeOut('slow');
var newElement;
if(element.is(':last')){
newElement = element.parents('ul').find('li:first');
}else{
newElement = element.next();
}
loopLi(newElement);
}
loopLi($('ul li:first'));
});
更新:
.delay()
并非我认为的全部。似乎以异步方式工作,允许在li淡入之前调用其他函数。这是一种更好的方法,具有间隔
$(document).ready(function(){
$('li:first').addClass('current');
$('li:not(:first)').hide();
var slideshow = setInterval(function (){
$('li.current').fadeOut('slow');
var nextElement;
if($('li.current').is(':eq('+ $('li').length +')')){
nextElement = $('li:first');
}else{
nextElement = $('li.current').next();
}
$('li.current').hide().removeClass('current');
nextElement.addClass('current').fadeIn('slow');
}, 10*1000);
});
答案 2 :(得分:0)
如果您需要更多功能,可以使用jCarousel或其他轮播类型插件。不确定你的演示文稿是什么样的,所以这可能会或可能不会比它的价值更麻烦。