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

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

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
971
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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. Идея состоит в том, что пока карта не находится в фокусе, вы можете перемещаться и прокручивать страницу. Только когда он находится в фокусе (например, после щелчка по карте), жесты панорамирования и прокрутки изменят вид карты.

Привет, спасибо за предложение. К сожалению, я это уже пробовал. Вы упомянули приведенное выше предложение в темах github, на которые я ссылался в своем вопросе. На мобильном устройстве не работает. Если коснуться карты и попытаться перетащить экран, он не двигается. Ссылка, которую вы разместили (openlayers.org/en/latest/examples/interaction-options.html), также демонстрирует, что это «не работает» на мобильном устройстве, к сожалению.

Glen Au-Yeung 02.06.2019 06:16

Хорошо, ты прав. Похоже, что-то должно было измениться за это время, потому что я тестировал его тогда на сенсорных устройствах.

ahocevar 03.06.2019 09:05

Превосходно! Большое спасибо. Я проверю это снова в следующем выпуске OpenLayers.

Glen Au-Yeung 05.06.2019 03:21

Привет @ahocevar - я только что попробовал последнюю версию библиотеки openlayers 6.0.1 в своем проекте. К сожалению, прокрутка страницы перетаскиванием карты по-прежнему не работает. Я также пытался указать мобильный браузер на openlayers.org/en/latest/examples/interaction-options.html, и там он тоже не работает. Возможно, исправление, сделанное вами с помощью запроса на включение github.com/openlayers/openlayers/pull/9634, было отменено другим более поздним запросом на включение? Спасибо за совет.

Glen Au-Yeung 23.10.2019 06:44

Вы правы, это снова было сломано. См. github.com/openlayers/openlayers/pull/10187 для нового исправления.

ahocevar 24.10.2019 16:21

Привет, @ahocevar. Только что обновился до последней версии openlayers (v6.1.1), и теперь свайп для прокрутки работает в мобильном браузере. Большое спасибо за ваше исправление и поддержку.

Glen Au-Yeung 03.12.2019 10:08

Другие вопросы по теме