2016-02-02 4 views
0

Я пытаюсь оживить свой элемент списка вправо, но оживить весь элемент в направлении вправо на один раз, но я хочу, чтобы один за другим ..здесь мой JQueryслайдер не будет работать должным образом

var I, 
    total_slide = $('#slide li').length, 
    slide = $('#slide li'); 

function run() { 
    for (I = 1; I <= total_slide; I++) { 
    var total = total_slide - I 
    $(slide).eq(total).animate({ 
     left: '700px' 
    }, 4000); 
    } 
} 

run() 
+0

'экв (л)' должны быть там и л должен иметь начальное значение 0. – Jai

+0

Я попытался это, но что сползает первые три списка сразу, что я хочу ДНТ .Я хочу он должен быть один за другим –

+0

Возможный дубликат [jQuery: Разнесенная анимация по списку элементов] (http://stackoverflow.com/questions/14183899/jquery-staggered-animation-on-list-of-elements) –

ответ

1

Вы должны использовать setTimeout функции, чтобы сделать паузы между анимацией:

function run(){ 
    var timeout = 0, delay = 4000; 
    $("#slide li").each(function(){ 
     var $li = $(this); 
     setTimeout(function(){ 
      $li.animate({ left: 700 }, delay); 
     }, timeout); 
     timeout += delay; 
    }); 
} 

Example

Кроме того, я бы рекомендовал использовать CSS-анимацию, когда это possib ле:

Example with CSS-animations

+0

Спасибо, что работает отлично, как я хотел. –

+0

Как поместить его обратно в исходное положение после скольжения вправо? –

+0

Просто выполните '$ (" # slide li "). Css (" left ", 0);' –

Смежные вопросы