Задержка слайдов цикла jQuery до завершения onBefore - PullRequest
0 голосов
/ 13 декабря 2011

Я перепробовал все, что мог придумать, но я не могу отложить слайд плагина jQuery Cycle до тех пор, пока анимации в моем onBefore не будут закончены. Я пытался использовать delay () и setTimeout () с циклом («переключение»). У кого-нибудь есть идеи, как отложить следующий слайд, пока все в onBefore не закончится?

$('#feature').cycle({ 
  fx:     'scrollLeft', 
  easing: 'easeOutExpo', 
  speed: 1000,  
  timeout: 3000,
  before:  onBefore
});

function onBefore(curr, next, opts, forwardFlag) { 
  $(curr).children("div").animate({  left : '960px' }, 300, function() {  });
}

1 Ответ

0 голосов
/ 15 декабря 2011

Кажется, что нет никакого способа отложить переход слайдов, пока не завершится onBefore.В качестве обходного пути я смог сделать то, что мне было нужно, с помощью следующего, по сути, описав, что произойдет до перехода следующего слайда в onAfter текущего слайда.

/ * Вручную опишите анимацию для первого* /

$('#feature .featureStory:first').children("a").delay(4500).animate({marginTop:'100'}, 500);

/ * Передайте вызов цикла 'after' и 'skipInitializationCallbacks' * /

$('#feature').cycle({ 
  fx: 'scrollLeft', 
  easing: "easeOutExpo",
  speed: 1000,
  timeout: 6000,
  after: onAfter,
  skipInitializationCallbacks: true
});

/ * Сделайте все свои анимации для следующего слайда в ononAfter текущего слайда * /

function onAfter(curr, next, opts, ff) {
  $(next).children(".featureStory").animate({left:'560px'}, 500, function(){ 
    $(this).children("a").animate({marginTop:'0'}, 500);
    $(this).children("a").delay(3500).animate({marginTop:'100'}, 500);
    $(next).children(".featureStory").delay(4500).animate({  left : '960px' }, 500); 
  });
}

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

...