2013-07-09 2 views
1

Пожалуйста, помогите мне исправить мой сценарий: http://jsfiddle.net/b36cM/анимация на JQuery сломаны

   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 анимации сдвигает два элемента влево. Я бы хотел прокрутить только один элемент, плавно.

ответ

0

Обратите внимание, что shiftAction() и удалить() работают асинхронно так анимация не закончена, когда элемент удаляется, и сделать вас анимацию, чтобы перейти на первый элемент, который вы можете проверить его с

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

, но его не разрешить дыра с анимацией