2009-10-13 4 views
0

Как я понимаю в настоящее время $ ("# someElement"). Animate() будет выполняться асинхронно относительно любых других операторов JavaScript. Например:Что такое хороший подход к синхронизации анимации JQuery?

$("#anotherElement").css("display", "none"); 

$("#someElement").animate(); 

//Setting the CSS display may fire AFTER the animation takes place. 

Если я правильно в моем понимании того, как работает анимация, как я:

  1. сделать анимацию работать синхронно с остальной частью моего кода?
  2. Если у меня есть анимация, которую я хотел бы заказать, это повлияет на разные элементов, как их синхронизировать для запуска в заданном порядке?

Спасибо за помощь.

ответ

2
  1. Нет, вы не можете запускать анимацию синхронно (только обратные вызовы).
  2. Используйте обратные вызовы для этого поведения.

Пример:

$('#elem1').animate(params, function() { 
    $('#elem2').animate(params, function() {/* ...other elements */}); 
}); 
Смежные вопросы