Изменение размера карты
Размер карты определяется при ее создании менеджером контейнеров. Далее карта не следит за возможными изменениями своих размеров. Чтобы карта изменила свои размеры на актуальные, требуется вызов функции менеджера fitToViewport().
Если скопировать полный код примера в новый HTML-документ, развернутая карта будет полностью занимать область просмотра браузера.
index.html
fillcontainer.js
<!DOCTYPE html>
<html>
<head>
<title>Изменение размера карты</title>
<meta
http-equiv="Content-Type"
content="text/html; charset=utf-8"
/>
<!--
Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
-->
<script
src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=<ваш API-ключ>"
type="text/javascript"
></script>
<script
src="https://yandex.st/jquery/2.2.3/jquery.min.js"
type="text/javascript"
></script>
<script src="fillcontainer.js" type="text/javascript"></script>
</head>
<style type="text/css">
html,
body {
width: 100%;
height: 95%;
margin: 0;
padding: 0px;
font-family: Arial;
font-size: 14px;
}
#container {
margin: 10px;
}
#map {
width: 430px;
height: 320px;
border: 1px solid black;
margin: 0;
padding: 0;
background-color: #ccc;
overflow: hidden;
}
.smallMap {
width: 300px !important;
height: 200px !important;
}
#toggler {
left: 5px;
top: 5px;
font-size: 12px;
}
#checkbox_block {
left: 163px;
top: 8px;
font-size: 13px;
text-shadow: 1px 1px 0 #fff;
}
</style>
<body>
<div id="container">
<input type="button" value="Развернуть/Cвернуть" id="toggler" />
<input
type="checkbox"
value="Изменить размеры карты"
id="checkbox"
/>
<label for="checkbox">Информировать карту</label><br /><br />
<div id="map" class="smallMap"></div>
</div>
</body>
</html>
ymaps.ready(init);
var myMap,
bigMap = false;
function init() {
myMap = new ymaps.Map(
"map",
{
center: [55.755768, 37.617671],
zoom: 10,
},
{
// При сложных перестроениях можно выставить автоматическое
// обновление карты при изменении размеров контейнера.
// При простых изменениях размера контейнера рекомендуется обновлять карту программно.
// autoFitToViewport: 'always'
searchControlProvider: "yandex#search",
}
);
$("#toggler").click(toggle);
}
function toggle() {
bigMap = !bigMap;
// Добавляем/убираем CSS-класс, определяющий размеры контейнера карты,
// заданные в абсолютных единицах (300x200 px).
if (bigMap) {
$("#map").removeClass("smallMap");
} else {
$("#map").addClass("smallMap");
}
// Если выставлен флаг, сообщаем карте, что ей следует
// привести свои размеры к размерам контейнера.
if ($("#checkbox").prop("checked")) {
myMap.container.fitToViewport();
}
}