Как заставить Яндекс.Карту менять свои размеры плавно и динамически?

Доброго времени!
Есть блок с фиксированной высотой - map-area. В него загружается карта, и, соответственно, автоматически принимает высоту родительского блока (причем высота автоматически прописывается в атрибуте style созданной карты). У меня также есть кнопка, которая плавно меняет высоту блока map-area. Если карту не трогать (или задать ей явно 100% высоту) она не будет реагировать на изменение размера контейнера, более того, по краям появятся заглушки с надписью "яндекс.карты не имеют данных об этих координатах". Карта ломается.

Нашел следующий работоспособный вариант:
$map.animate({'height':'600px'}, 'fast', 'linear', function() {
	map.container.fitToViewport(); // объект класса ymaps.Map
})

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

Есть ли способы это сделать?..
Спасибо.
  • Вопрос задан
  • 3094 просмотра
Решения вопроса 1
forgotten
@forgotten
Руководитель разработки API Яндекс.Карт
Ну, очевидно, руками в цикле менять высоту карты и вызывать fitToViewport.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@chudomozg
т.е. Слово 'fast' ни на что не намекает? =)
Из Документации:
.animate( properties [, duration ] [, easing ] [, complete ] )
параметр duration (задержка) можно задать в цифрах (миллисекунды если память не изменяет) и в словах (fast,slow).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы