Моя страница прокручивается всякий раз, когда я увеличиваю свою agm-карту с помощью ctrl + scrollwheel - PullRequest
0 голосов
/ 21 июня 2019

Я работаю над веб-приложением 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 + колесо прокрутки, но страница всегда прокручивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...