jquery,计时器或链接功能?

时间:2010-01-18 19:16:17

标签: jquery

如何最好地骑自行车穿过李并重复?

我应该使用计时器还是有更好的方法?

例如,我想一次显示一个li。当我到达终点时,我想回到顶部并重新开始。

3 个答案:

答案 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或其他轮播类型插件。不确定你的演示文稿是什么样的,所以这可能会或可能不会比它的价值更麻烦。