Масштабирование колеса прокрутки на OpenLayers прекращает работать с div, установленным на переполнение: auto - PullRequest
3 голосов
/ 27 марта 2012

Вот мой css для моей карты div:

#map {
              position: fixed;
              top: 9.48em;
              bottom: 2.2em;

            }

Моя карта OpenLayers отображается в этом div.Все отлично работаетНо как только я добавлю свойство

overflow:auto;

в css выше, масштабирование с помощью колеса прокрутки на моей карте отключится.Мне нужно добавить это свойство, потому что теперь мне нужно показывать некоторые таблицы вместо карты.

Я подозреваю, что когда я добавляю полосы прокрутки, событие колеса прокрутки не достигает OpenLayers.

Как-нибудь обойти эту проблему, исправив css или какой-то код OpenLayers?

Я знаю, что могу сделать это, добавив некоторую логику в JS, которая динамически изменяет свойство css в зависимости от загружаемой страницы,но без крайней необходимости я не хочу идти этим путем и находить чистое решение.

Спасибо.

1 Ответ

3 голосов
/ 27 марта 2012

Хороший вопрос, это по замыслу: если вы находитесь в прокручиваемом div, OpenLayers ничего не будет делать (для этого он проверит стиль переполнения), в противном случае он будет прокручивать карту.

Поищите объяснения у источника: https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L149

Проверка стиля переполнения здесь: https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L124

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