Карта заполняет своим содержимым контейнер, в котором она размещается. В момент инициализации карта должна иметь возможность определить размеры контейнера.
Если в момент инициализации карты контейнер еще не сформирован, размеры карты будут нулевыми (0x0), т. е. она фактически не будет отображена.
Неотображение карты в неактивной вкладке jQuery.UI происходит из-за того, что для скрытия вкладки используется CSS-свойство display: none. Элемент, для которого выставлено display: none, не знает свои реальные размеры. Самое простое решение - в момент переключения вкладки инициировать пересчет размеров карты вызовом команды fitToViewport(). Также можно обойти проблему в примере (используется jQuery.UI), если использовать альтернативный способ скрытия вкладки, переопределив стандартные классы jQuery.UI:
\n\n\n","hiddendiv.js":"ymaps.ready(init);\n\nvar myMap;\n\nfunction init () {\n // Инициализация вкладок.\n // После исполнения команды tabs() tab-2 получит style='display:none'.\n // Карта будет инициализирована, но будет иметь нулевой размер.\n // В данном случае это хорошо, так как невидимая карта не будет загружать невидимые тайлы.\n $('#tabs').tabs();\n myMap = new ymaps.Map('tab-2', {\n center: [55.76, 37.64], // Москва\n zoom: 10\n });\n\n // В момент показа новой вкладки будем пересчитывать размер карты.\n // Карта примет максимально возможные значения при активации ее таба\n // и нулевые, как только будет выбран первый таб.\n // Подписываемся на событие 'tabsshow' (а не 'tabselect',\n // так как требуется, чтобы элемент с картой уже был виден).\n $('#tabs').bind('tabsshow', function (event, ui) {\n myMap.container.fitToViewport();\n });\n}\n"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/hiddendiv/"}
Карта заполняет своим содержимым контейнер, в котором она размещается. В момент инициализации карта должна иметь возможность определить размеры контейнера.
Если в момент инициализации карты контейнер еще не сформирован, размеры карты будут нулевыми (0x0), т. е. она фактически не будет отображена.
Неотображение карты в неактивной вкладке jQuery.UI происходит из-за того, что для скрытия вкладки используется CSS-свойство display: none. Элемент, для которого выставлено display: none, не знает свои реальные размеры. Самое простое решение - в момент переключения вкладки инициировать пересчет размеров карты вызовом команды fitToViewport(). Также можно обойти проблему в примере (используется jQuery.UI), если использовать альтернативный способ скрытия вкладки, переопределив стандартные классы jQuery.UI:
.ui-tabs .ui-tabs-hide { position: absolute !important; left: -10000px !important; display: block !important; }