Клуб API Карт

Как убрать открытый балун из-под меню?

Пост в архиве.

http://prosmotr.biz/

Открытый балун практически полностью скрывается под левым меню сайта.

К сожалению, невозможно меню опустить по z-index`у ниже самого окна балуна. И не получается балун поднять z-index`ом выше меню.

Вариант такой. По событию "открыть балун" отодвинуть его вправо за правый обрез меню http://yadi.sk/d/LXATXZDu1LKkw

Но, правка css-стилей не помогает. Как реально это можно сделать?

Заметил один нюанс. Отодвиньте карту влево так, чтобы метки были как можно ближе к левому краю монитора и откройте балун. Он отодвигается вправо и становится полностью виден. Как это его движение продолжить, к примеру - до центра экрана?

Версия карты 1.0

6 комментариев

кажется что балун выше меню будет выглядеть как ошибка.

меню это своего рода контрол - а контролы всегда должны быть выше балунов.

Георгий Бондаренко
28 января 2016, 02:59

Согласен с Вами, поэтому единственным вариантом вижу - отодвинуть балун вправо при открывании

но, как это сделать?

 Передвинуть центр карты

Георгий Бондаренко
28 января 2016, 02:59

Получилось так http://prosmotr.biz/

 

Слушатели на открытие балуна

YMaps.Events.observe(obj, obj.Events.BalloonOpen, function (map) {
                $(tr).addClass("selected");
                var _map = map._map;
                var _point = obj._point.copy();
                   obj.prev_zoom = _map.getZoom();
                console.log(obj.prev_zoom);
                _point.__lng = _point.__lng-26;
                _point.__lat = _point.__lat+4;

                _map.setCenter(_point,4);
                $("div.YMaps-b-balloon-content > b").remove();
                map.getBalloon().getContentLayout().getRootNodes().find('.get-vt-code').unbind('click').bind('click', function() {
                    var link = YMaps.jQuery(this), curId;
                    curId = link.attr('rel');
                    if (YMaps.jQuery('#vt-code-'+curId).length>0)
                    {
                        closeOpenedBlocks();
                        YMaps.jQuery('.vt-code-enabled').removeClass('vt-code-enabled');
                        YMaps.jQuery('#vt-code-'+curId).addClass('vt-code-enabled');
                    }
                    return false;
                });

 

Но, если изначально с помощью масштаба детализировать допустим Краснодар (чтобы улицы были видны), то при открытии балуна возвращается начальный масштаб "4"

Это задано здесь _map.setCenter(_point,4);

 

Вопрос. Что прописать вместо '_point,4' чтобы масштаб вообще не изменялся при открытии балуна?

Можно не указывать масштаб,

в документации написано что этот параметр опциональный

Георгий Бондаренко
28 января 2016, 02:59

да, я знаю об этом и уже пробовал убрать масштаб вообще

_map.setCenter(_point);

 

сейчас тоже убрал

посмотрите, пожалуйста, что происходит на крупном масштабе (видны улицы города)