Я работаю над веб-приложением Angular и хочу иметь возможность увеличивать мою agm-карту с помощью ctrl + колесико прокрутки, не прокручивая страницу вверх и вниз. В то же время я хочу нормально прокручивать страницу, не нажимая ctrl, потому что карта покрывает большую часть экрана, и иначе было бы неудобно прокручивать ее.
Сначала проблема заключалась в том, чтобы заставить карту прокручиваться только при нажатии Ctrl. В соответствии с документацией (https://developers.google.com/maps/documentation/javascript/interaction) и комментариями других разработчиков) это было достигнуто путем установки для gestHandling значения кооперативного и scrollWheel равного нулю.
Теперь я могу нормально прокручивать страницу даже при наведении курсора на карту, прокручивая без нажатия Ctrl и по-прежнему используя колесо прокрутки, чтобы увеличивать и уменьшать масштаб карты при нажатии Ctrl. Но всякий раз, когда я делаю это позже, вся страница также немного прокручивается вверх или вниз.
Я пытался отказаться от установки колеса прокрутки в null на карте agm, но тогда карте больше не нужно, чтобы я использовал ctrl, несмотря на то, что gestHandling все еще установлен на кооперативный, а веб-страница все еще прокручивается при увеличении карты. Я попробовал ту же самую настройку в других представлениях Webapp, чтобы видеть, возникает ли проблема последовательно, и это делает. Это также происходит в Chrome и Firefox. Я пытался остановить eventPropagation, но не знал, как это сделать, поэтому он останавливается только тогда, когда я нажимаю Ctrl.
Помимо этой проблемы все, что я настроил на карте, работает нормально (некоторые полигоны и кнопки. Границы устанавливаются динамически).
<div class="mapContainer mt-4">
<agm-map [scrollwhell]="null" [gestureHandling]="'cooperative'" [latitude]="mapLat" [longitude]="mapLng" [fitBounds]="mapBoundsLiteral" [mapTypeControl]="true" [mapTypeId]="'satellite'" [streetViewControl]="false" #map>
[...]
</agm-map>
</div>
Я бы ожидал, что страница и карта будут работать точно так же, как и в первой демонстрации в документации, поскольку я использую те же атрибуты, где они кажутся важными. Это означает, что страница должна нормально прокручиваться при использовании только колеса прокрутки, но не должна прокручиваться при масштабировании карты с помощью Ctrl + колесо прокрутки, но страница всегда прокручивается.