---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/examples/cases/hiddendiv.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/examples/cases/hiddendiv.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/llms.txt

# Размещение в скрытом контейнере

<iframe id="LIVE-EXAMPLE" style="width:100%;height: 400px;border-radius: 8px;border: 1px solid rgba(92, 94, 102, 0.14);" frameBorder="0" src="https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/examples/2/out/s3-cases/ru/hiddendiv/index.html" allow="fullscreen"></iframe>

<a target="_blank" rel="noopener noreferrer" style="display: inline-block;margin-top: 10px;cursor: pointer;border-radius: 4px;padding: 9px 12px;background: #151515;color: white;text-decoration: none;font-weight: 500" href="https://codesandbox.io/p/sandbox/zps5mn?file=index.html">Open in CodeSandbox</a>

<div id="references">
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ready">ready</a>,
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map">Map</a>,
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Map.container">Map.container</a>
</div>
<p>
    Карта заполняет своим содержимым контейнер, в котором она размещается. В момент инициализации карта должна иметь возможность определить размеры контейнера.
</p>
<p>
    Если в момент инициализации карты контейнер еще не сформирован, размеры карты будут нулевыми (0x0), т. е. она фактически не будет отображена.
</p>
<p>
    Неотображение карты в неактивной вкладке jQuery.UI происходит из-за того, что для скрытия вкладки используется CSS-свойство display: none. Элемент, для которого выставлено display: none, не знает свои реальные размеры. Самое простое решение - в момент переключения вкладки инициировать пересчет размеров карты вызовом команды <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/map.Container-docpage/#fitToViewport">fitToViewport()</a>. Также можно обойти проблему в примере (используется jQuery.UI), если использовать альтернативный способ скрытия вкладки, переопределив стандартные классы jQuery.UI:
</p>
<p>
    .ui-tabs .ui-tabs-hide {
    position: absolute !important;
    left: -10000px !important;
    display: block !important;
    }
</p>

{% list tabs %}

-   index.html

    ```html
    <!DOCTYPE html>

    <html>
        <head>
            <title>Размещение в скрытом контейнере</title>
            <meta
                http-equiv="Content-Type"
                content="text/html; charset=utf-8"
            />
            <!--
            Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
            Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
        -->
            

            <!--
            Основная библиотека JQuery.
            Яндекс предоставляет хостинг JavaScript-библиотек
        -->
            

            <!-- Библиотека JQuery.UI. Используем для работы со вкладками -->
            

            <!-- CSS JQuery.UI. Используем для отрисовки вкладок -->
            <link
                rel="stylesheet"
                href="https://yandex.st/jquery-ui/1.8.23/themes/humanity/jquery.ui.all.min.css"
                type="text/css"
            />

            
        </head>

        <body>
            <div id="tabs" style="width: 95%">
                <ul>
                    <li><a href="#tab-1">Описание</a></li>
                    <li><a href="#tab-2">Карта</a></li>
                </ul>
                <div id="tab-1">
                    <p>Во вкладке Карта находится карта Москвы</p>
                </div>
                <div
                    id="tab-2"
                    style="width: 100%; height: 300px; padding: 0;"
                ></div>
            </div>
        </body>
    </html>
    ```

-   hiddendiv.js

    ```js
    ymaps.ready(init);

    var myMap;

    function init() {
        // Инициализация вкладок.
        // После исполнения команды tabs() tab-2 получит style='display:none'.
        // Карта будет инициализирована, но будет иметь нулевой размер.
        // В данном случае это хорошо, так как невидимая карта не будет загружать невидимые тайлы.
        $("#tabs").tabs();
        myMap = new ymaps.Map("tab-2", {
            center: [55.76, 37.64], // Москва
            zoom: 10,
        });

        // В момент показа новой вкладки будем пересчитывать размер карты.
        // Карта примет максимально возможные значения при активации ее таба
        // и нулевые, как только будет выбран первый таб.
        // Подписываемся на событие 'tabsshow' (а не 'tabselect',
        // так как требуется, чтобы элемент с картой уже был виден).
        $("#tabs").bind("tabsshow", function (event, ui) {
            myMap.container.fitToViewport();
        });
    }
    ```

{% endlist %}
