Открывающие слои не могут прокручивать страницу по вертикали при касании и перемещении карты - PullRequest
0 голосов
/ 29 мая 2019

Я использую Openlayers с Угловой и встроил простую карту на экран. Я отключил взаимодействия так:

this.map = new Map({
  target: 'map',
  interactions: [],
  layers: [this.layer],
  view: this.view
});

Это предотвращает панорамирование карты при касании и перетаскивании, что мне и нужно. Однако я хотел бы иметь возможность вертикально прокручивать страницу браузера, нажимая и перетаскивая карту, чтобы пользователь мог видеть содержимое под картой. На данный момент прокрутить страницу можно, только нажав и перетащив область за пределы карты.

Есть проблемы GitHub, связанные с этим:
https://github.com/openlayers/openlayers/issues/6767
https://github.com/openlayers/openlayers/issues/8458

Но я не мог заставить его работать. Кто-нибудь может помочь с этим?
Спасибо

1 Ответ

1 голос
/ 29 мая 2019

Есть несколько способов добиться этого. Мой предпочтительный способ - настроить карту на

import Map from 'ol/Map';
import {defaults as defaultInteractions} from 'ol/interaction';

new Map({
  target: 'map',
  interactions: defaultInteractions({
    onFocusOnly: true
  }),
  // ...
});

Целевой элемент для карты в разметке должен иметь атрибут tabindex, например,

<div tabindex="1" id="map"></div>

Вы можете увидеть это в действии здесь: https://openlayers.org/en/latest/examples/interaction-options.html. Идея состоит в том, что пока карта не имеет фокуса, вы можете перемещаться и прокручивать страницу. Только когда он имеет фокус (например, после щелчка по карте), жесты панорамирования и прокрутки изменят вид карты.

...