Клуб API Карт

карта из скрытого контейнера или глюк с map.redraw()

R15
31 января 2012, 19:10

Пытаюсь открывать контейнер с картой после прогрузки всей страницы, по инструкции отсюда:

http://api.yandex.ru/maps/articles/tasks/map.xml#how-to-use-smooth-panning

карта отображается, но теряется содержание баллуна:

если убрать display:none или свернуть и заново открыть балун, то все становится нормальным.

есть очень сильные подозрения что как то неправильно происходит перерисовка карты map.redraw()

для дива с картой прямо в коде прописаны ширина и высота. redraw() выполняется после того как блок становится видимым. алерт после строки с перерисовкой говорит о том что она вроде бы отработала.

живой пример: здесь исходный код:

 YMaps.jQuery(function () {
   
        var container = YMaps.jQuery("#YMapsID"), map = new YMaps.Map(container[0]
           
        map.setCenter(new YMaps.GeoPoint(44.416667, 42.833333), 9);

        var placemark = new YMaps.Placemark(new YMaps.GeoPoint(44.416667, 42.833333), {style: "default#redPoint", balloonOptions: {maxWidth: 250}}
        placemark.name = "Даргавс - городок мертвых";
        placemark.description = "Историко-архитектурный комплекс в с. Даргавс. Состоит из 97 склепов разной датировки.";
        map.addOverlay(placemark);
        placemark.openBalloon(   
       
       
        YMaps.jQuery("#change-map-visibility").bind('click', function () {
            container.css('display', (container.css('display') == 'none') ? '' : 'none');
            map.redraw( // Перерисовывает карту
            alert('change-map-visibility');
            return false;
        }
   
       
    })
<div class='cats cords'>Географические координаты: 44.416667, 42.833333 (<a href='#' class='sub' rel='YMapsID' id='change-map-visibility'>показать на карте</a>)</div>
<div id='YMapsID' style='width:600px;height:600px;display:none;'></div>

 

 

 

 

0 комментариев
Подписаться на комментарии к посту