Клуб API Карт

Как задать стиль css балуна?

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

Искал, искал (кстати, очень неудобно разбросана документация и прочее по API), но так и не нашел никакого конкретного примера: как изменить (до неузнаваемости, в целях интеграции с дизайном сайта) внешний вид балуна? Понимаю, что можно переопределить css классы у себя на сайте, но тут где-то писали, что это кривовато, ибо в дальнейшем классы могут быть переименованы и т.п. Подскажите пожалуйста, как напрямую задать бэкграунды, рамки и прочие css свойства элементов балуна

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

неужели создателей api не учили делать проще? я, вот, ничего не понял.

создаю объект стиля, в нем — объект стиля балуна, в котором — объект шаблон, который создается конструктором, который принимает параметром что-то там (тут я уже совсем запутался)

var style = new YMaps.Style();
            style.balloonStyle = {template: new YMaps.LayoutTemplate(SampleBalloonLayout)};

и это при том, что это все очень просто поменять из css.

и я бы забил на это, и сделал бы через css, но я человек азартный, и буду втыкать пока не пойму. так что прошу помочь мне с пониманием следующих вещей:

1. почему пример не работает (я скопировал код)? открываю балун так:

map.openBalloon(point,content,{style: y_style};

но его вид не меняется ничуть.

2. в функции SampleBalloonLayout недостаточно будет указать только поле element? обязательно указывать методы и прочее?

с первым разобрался.

второй пункт актуален

и еще: как сделать, чтобы все баллуны открывались с заданным стилем, без явного указания этого?

 

и еще: как сделать, чтобы все баллуны открывались с заданным стилем, без явного указания этого?
заменить дефолтный стиль default#balloon на ваш

 

 

2. в функции SampleBalloonLayout недостаточно будет указать только поле element? обязательно указывать методы и прочее?

 

да, это интерфейс балуна и его надо реализовать.

если в вашем балуне нет интерактивных элементов

можно вместо макета использовать шаблоны

они несколько проще для понимания

спасибо за помощь! кое как разобрался )