Клуб API Карт

Замена фоновых изображежений пинов на карте

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

Все здравия!

Была задача: при наведение на строку списка выделять пин, который соответствует этой строке.

Реализация:

map.geoObjects.each function() {
            if (geoObject.properties.get('pointId') == pointId) {
                geoObject.options.set('iconImageHref', '/new/pin.jpg');
                return ;
            }
         }

Внезапно это перестало работать: пины после наведения стали пережатыми. Новый и старый пин имеют одинаковые размеры (отличаются только цветом).

Посмотрев в firebug'e на код страницы заметил разницу в стилях пинов:

до
position: absolute; left: -35px; top: -32px; width: 36px; height: 35px; background-position: -9px -1px; background-size: 46px 37px; background-image: url("/i/pin_large.png");    


после
position: absolute; left: -35px; top: -32px; width: 36px; height: 35px; background-position: 0px 0px; background-size: 36px 35px; background-image: url("/i/pin_large.png");

 

Почему так и что можно сделать?

 

3 комментария
Алексей Yarrr!
28 января 2016, 02:21

Видимо, секрет внутри  geoObject.options.set('iconImageHref', ...);

Можно описать классы в css файле и менять их (ставить/убирать) у geoObject.element кажется.

думаю что вызов return из обработчика each не прерывает дальнейшего перебора коллекции

что значит пережатыми?

запости картинку, пожалуйста

и ссылку на свой код