Как программно установить фокус в поле "Куда" панели маршрутизации?

Рейтинг: 0Ответов: 1Опубликовано: 25.05.2023

У меня карта размещена в модальном окне бустрап и по умолчанию не винда. При нажатии кнопки "Рассчитать калькулятором" всплывает модальное окно расчета стоимости доставки взятый из примера https://yandex.ru/dev/maps/jsbox/2.1/deliveryCalculator/ Но если бы карта была сразу видна, то поле "Куда" сразу было бы в фокусе. Но так как пользователь не понимает что делать, мне надо чтобы это поле сразу было активно, потому что при этом курсор принимает другой вид и пользователь может сразу тыкнуть на карте на место назначения. В виду того что на телефоне место мало для дополнительных инструкций нужно решить мне эту задачу. Всё это я делаю под телефон. Под десктоп проблем нет, там есть куда вставить инструкцию, но все же нужно максимально автоматизировать процесс указания адреса доставки

Ответы

▲ 0

Контрол можно сделать активным вызовом focus(). Но имейте в виду, что метод не описан, а потому не разрешён пользовательским соглашением и может быть в любой момент изменён или удалён, хотя сейчас вполне работоспособен.

ymaps.ready(init);
function init() {
    var myMap = new ymaps.Map('map', {
            center: [55.753994, 37.622093],
            zoom: 9,
                        controls: ['routePanelControl']
        });
  
    var control = myMap.controls.get('routePanelControl');
  // Отслеживаем смещение карты
    myMap.events.add('boundschange', function () {
  // Возвращаем фокус на панель для построения машрутов
            control.routePanel.focus();
    });
}
html, body, #map {
width: 100%;
height: 100%;
}
<html>
    <head>
        <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=" type="text/javascript"></script>
    </head>
    <body>
        <div id="map"></div>
    </body>
</html>