1

请帮我纠正我的脚本:http: //jsfiddle.net/b36cM/

                if(direction == -1){
                    wrapperElements.children(':last').after($('#carousel > ul').children().slice(0, options.rotateBy).clone());

                    shiftAction();

                    wrapperElements.children().slice(0, options.rotateBy).remove();
                }
                else{
                    // wrapperElements.children(':first').after($('#carousel > ul').children().slice(carouselLength - options.rotateBy, carouselLength).clone());

                    // shiftAction();

                    // wrapperElements.children().slice(carouselLength - options.rotateBy, carouselLength).remove();
                }               
            }

            function shiftAction(){
                console.log(offset);

                wrapperElements.animate({
                    'left': offset                  
                }, options.speed,   function(){
                                        running = false;
                                    });                 
            }               
        }

单击#prev动画时,会将两个元素向左移动。我只想流畅地滚动一项。

4

1 回答 1

0

注意 shiftAction() 和 remove() 是异步运行的,所以当元素被移除时动画不会完成,这会让你的动画跳到第一个元素上,你可以用它来检查它

setTimeout(function() {
      wrapperElements.children().slice(0, options.rotateBy).remove();
       },5000);

但它不能解决动画的孔问题

于 2013-07-09T13:00:42.223 回答