2010-01-29 4 views
3

У меня есть список, который скрыт с помощью CSS код {дисплей: нет;}не в состоянии цепи анимации в JQuery

теперь я использую код JQuery для анимации списка (Ли)

var numb = $("ol#update li").length; 
for(j=0; j < numb; j++) {      
    $("ol#update li").eq(j).animate({ 
    height: 'show', 
opacity: 'show' 
}, {duration:1000}); 
    } 

Мне нужно, чтобы анимировать элементы один за другим

есть пример в этом page

но весь литий являются анимируемыми все сразу и я не могу видеть белым у.

ответ

4

Просто используйте вместо этого:

var $li = $("ol#update li"); 
function animate_li(){ 
    $li.filter(':first') 
     .animate({ 
     height: 'show', 
     opacity: 'show' 
     }, 1000, function(){ 
     animate_li(); 
     }); 
    $li = $li.not(':first'); 
} 
animate_li(); 

В основном она захватывает все li с, а затем один за другим одушевляет их в то же время, каждая итерация удаляет первый элемент из списка.. Если вы хотите, чтобы анимировать наоборот, замените оба события :first на :last.

+0

thats cool .... любое другое обходное решение с использованием jquery chaining ??? или анимационная очередь ??? –

+0

Очередь устанавливается по каждому элементу, а не по умолчанию. Поэтому использование очереди не может быть и речи по большей части. Может быть какая-то базовая абстракция их очереди, которую вы могли бы использовать, но я не уверен, и она все равно будет включать цикл, по крайней мере, для его настройки. –

+0

У меня есть еще один вопрос: - http://stackoverflow.com/questions/2408099/not-able-to-remove-nested-lists-in-a-jquery-variable –