@VasPaGit

Яндекс карты настройки на разных расширениях экрана?

Нужно, чтобы на десктопе была одна центральная точка, а на телефоне другая. Как этого добится? Так же, как изменять другие настройки, например, на компьютере есть настройка "drag", а на телефоне отключина. Есть ли что-то на подобии media?
ymaps.ready(init);
		function init() {
			var myMap = new ymaps.Map("map", {
				center: [54.755553, 55.897349],
				zoom: 12
			});

			myMap.controls.remove('geolocationControl').remove('searchControl').remove('routeButton').remove('rulerControl').remove('fullscreenControl').remove('typeSelector').remove('trafficControl');

			myMap.behaviors.disable([
				'scrollZoom',
				'drag'
			]);

			var placemark = new ymaps.Placemark([54.752656, 56.002053], {}, {
				iconLayout: 'default#image',
				iconImageHref: 'img/maps.png',
				iconImageSize: [48, 48],
				iconImageOffset: [-24, -48]
			});

			myMap.geoObjects.add(placemark);
		}
  • Вопрос задан
  • 216 просмотров
Пригласить эксперта
Ответы на вопрос 1
@fromaline
Хорошего дня)
Да, конечно, такая возможность существует, т.к. это JS, то необходимо просто привязать handler к event'у
const APIReadyHandler = () => {
        if (window.innerWidth <= 500) {
          myMap.setCenter([59.465577, 30.900147]);
          myMap.behaviors.enable('scrollZoom', 'drag')
        }
      }
      ymaps.ready(function() {
        APIReadyHandler();
      });

В этом сниппите когда API готов к использованию исполняется функция и происходит то самое изменение настроек. Если вам необходимо изменение при ресайзе viewporta'а, то функцию нужно исполнять на window.onresize event.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы