Немного неясно, о чем вы спрашиваете, но в большинстве случаев, если вам нужны одновременные анимации, просто вызывайте их по порядку, а не в цепочке.
jsFiddle, задержка сокращена до 3 секунд, чтобы просто посмотреть, как это работает.
$('button').on('click', function(e) {
// clear simple timer for running later code. Clearing this ensures it starts from begining
if (this.tmr) clearTimeout(this.tmr);
// stop any previous running animation and reset elements
$('div, pre').stop(true, true).hide()
// run first two animations, note one for parent and one for child
// also note, the parent has set width, this helps with hidden child
$('div').slideDown('slow')
$('pre').fadeIn('slow');
// that simple timer i mentioned, for delaying next animation
this.tmr = setTimeout(function() {
// our last 2 animations
$('pre').fadeOut('slow');
$('div').slideUp('slow');
}, 5000);
})
Использование delay()
jsFiddle
$('button').on('click', function(e) {
$('div, pre').stop(true, true).hide();
// delay works best on one element at a time
$('div').slideDown('slow').delay(5000).slideUp('slow');
// so simply call it on each element, but make sure the times remain hwo you want them or it cold begin to look silly
$('pre').fadeIn('slow').delay(5000).fadeOut('slow');
})
Проблема с этим решением заключается в том, что оно не остановит задержку, и если ваш метод запускается несколько раз, он будет выглядеть причудливо.
Чтобы понять, что я имею в виду, откройте обе эти скрипки. На каждом из них нажмите кнопку примерно 5 или 6 раз. Или нажмите, чтобы он открылся полностью, затем нажмите еще раз. Обратите внимание, что мое первое решение работает одинаково каждый раз, но второе начнет исчезать и скользить гораздо быстрее.
Из https://api.jquery.com/delay/
Метод .delay() лучше всего подходит для задержки между эффектами jQuery в очереди. Поскольку он ограничен — он, например, не предлагает способ отменить задержку — .delay() не является заменой родной функции JavaScript setTimeout, которая может быть более подходящей для определенных случаев использования.
person
SpYk3HH
schedule
18.02.2016