@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);
		}
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 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.
Ответ написан
Ваш ответ на вопрос

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

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