Добиться плавной анимации при наличии тучи DOM-элементов, да ещё и когда в анимируемом контейнере грузятся картинки и какой-нибудь Google Maps, оказалось не просто. Путь был довольно долг и тернист. Приведу только рецепт:
- Не используйте jQuery.animate(). Он тормоз.
 - Вместо него используйте Velocity.js.
 - Если возможно, анимируйте только 
transform: translate,transform: scale,transform: rotate,opacity. - Включайте аппаратное ускорение для анимируемого слоя. Делайте это сразу в CSS, приправьте чёрной магией.
 
Если и после этого не помогло:
- Попробуйте уменьшить количество DOM-элементов в анимируемом контейнере.
 - Не стартуйте несколько анимаций единовременно.
 - Если контент в контейнер подгружается динамически, рисуйте во время анимации эмуляцию контента, как это делает, например, Facebook. Заменяйте на реальный контент как только анимация закончена.
 


