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

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

Похожие вопросы
25 дек. 2024, в 08:00
20000 руб./за проект
25 дек. 2024, в 07:53
20000 руб./за проект
25 дек. 2024, в 07:45
20000 руб./за проект