Закончите одна анимация затем запускают другую

15
задан Peter Mortensen 16 December 2010 в 23:00
поделиться

7 ответов

$('#Div1').slideDown('fast', function(){
    $('#Div2').slideUp('fast');
});

Редактирование: Вы проверили плагин аккордеона (если это - то, что Вы пытаетесь сделать)?

20
ответ дан 1 December 2019 в 02:10
поделиться

Можно использовать обратный вызов для увольнения следующего эффекта, когда первое сделано:

$("#element1").slideUp(
    "slow", 
    function(){
        $("#element2").slideDown("slow");
    }
);

В этом примере функцию, определяемую как второй аргумент slideUp методу называют после того, как slideUp анимация закончилась.

См. документацию: http://docs.jquery.com/Effects/slideUp

1
ответ дан 1 December 2019 в 02:10
поделиться

Необходимо объединить его в цепочку как это

function animationStep1()
{
   $('#yourDiv1').slideUp('normal', animationStep2);
}

function animationStep2()
{
   $('#yourDiv2').slideDown('normal', animationStep3);
}

// etc

, Конечно, можно приправить это с рекурсивными функциями, массивы, содержащие очереди анимации, и т.д., согласно потребностям.

5
ответ дан 1 December 2019 в 02:10
поделиться

Большинство функций jQuery имеет параметр обратного вызова, можно просто передать функцию в это.

0
ответ дан 1 December 2019 в 02:10
поделиться
$("#thisDiv").slideUp("slow", function() {
    // This function is called when the slideUp is done animating
    $(this).doNextThing();
});
0
ответ дан 1 December 2019 в 02:10
поделиться

пример этого виден в JQuery для Новичков - День 2

существует 15 дней этих учебных руководств, и они - хороший ресурс.Приятного отдыха!

0
ответ дан 1 December 2019 в 02:10
поделиться

Используйте второй параметр функции: обратный вызов. Например,

$(this).slideDown( speed, function(){
    $(this).slideUp();
});
-1
ответ дан 1 December 2019 в 02:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: