Кажется, нет способа отложить переход слайда до завершения 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
});
/* Делайте все ваши анимации для следующего слайда в onAfter текущего слайда */
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 предыдущего слайда и некоторые задержки, чтобы заставить вещи выполняться в соответствующее время. время.
person
jdehlin
schedule
15.12.2011