Клуб API Карт

Найдено на тему «Resize»:
Неправильный style="width:" при ресайзе окна для <ymaps>
Михаил
24 августа 2017, 14:25

Почему-то при ресайзе окна в двух первых обёрточных тэгах <ymaps> стали прописываться неправильные размеры ширины. Если совсем точно, то туда прописывается максимальный размер и изменяется только в бо́льшую сторону. Помогает принудительная установка ширины на нужную при событии ресайза окна.

С кодом страницы ничего особенного не делали: никакого нового JS, старые CSS проблему не решают. С чём это может быть связано? Проявилось 23.08 вечером.

3 комментария
bug,размер карты,Resize
Изменить центр карты при изменении размера карты
randomsuffer
30 сентября 2016, 14:18

Всем добрый день.

Пытаюсь сделать так, чтобы центр карты менялся при изменении ширины браузера, ширина карты - 100%.

 $(window).resize(function () {
      if ($(window).width() < 960) {
             var point = new YMaps.GeoPoint(37.609218, 55.753559);
             map.setCenter(point);
      }
});

Такая вот штука не работает.

Нашел ивент sizechange, но не понимаю, как им воспользоваться.

Подскажите кто-нибудь пожалуйста.

5 комментариев
events,Resize,sizechange
Не обновляется размер balloon'а у метки
FlinnRaider
25 ноября 2015, 10:39

В качестве основы использую вот этот пример - https://tech.yandex.ru/maps/jsbox/2.1/balloon_autopan

 

При изменении контента балуна через placemark.properties.set('balloonContent', '...'), балун меняет свой размер в соответствии с кол-вом контента, руководствуясь инструкцями из макета балуна (примечание 1).

 

В моем случае нужно загрузить содержимое балуна через ajax вместе с некоторыми inline-скриптами (само-собой через простую вставку это не работает (примечание 2)).

Я загружаю контент при помощи jquery-pjax, который автоматически обновляет контент тега с указанным id (примечание 3).

При таком подходе контент в балуне обновляется, inline-скрипты выполняются, но его размер не изменяется.

 

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

 

P.S. Общий пример кода в примечании 4.

 

$[[options.contentLayout observeSize minWidth=235 maxWidth=235 maxHeight=350]]
// Строка 17 из этого примера https://tech.yandex.ru/maps/jsbox/2.1/balloon_autopan

 

 var $balloonContentContainer = $('#my-balloon');
$.get('/get-my-balloon-content').done(function(renderedHtml){
    $balloonContentContainer.html(renderedHtml); // Это не отработает как необходимо, так как в возвращенном html есть inline-скрипты, которые нужно выполнить
})

  

$.pjax({
    timeout  : false,
    push      : false,
    replace   : false,
    url          : '/get-my-balloon-content',
    container: '#my-balloon'
});

 

 var placemark = new ymaps.Placemark(
    feature.geometry.coordinates,
    feature.properties,
    feature.options
);
placemark.events.add('balloonopen', () => {
    var selector = `#${placemark.properties.get('containerId')}`;
    var promise     = $.pjax({
        timeout  : false,
        push     : false,
        replace  : false,
        url      : placemark.properties.get('contentUrl'),
        container: selector
    });
  promise.done(() => {
      // Здесь нужно вызвать событие изменения размеров балуна. 
      // placemark.events.fire('change') // Что-то вроде этого.
  })
});

 

6 комментариев
API 2.1,события,placemark,balloon,балун,метка,Resize