#javascript #google-maps #leaflet #mousewheel #pinchzoom
#javascript #google-карты #брошюра #колесо мыши #pinchzoom
Вопрос:
Мне любопытно, как воссоздать способ масштабирования с помощью пинча в таких картографических инструментах, как Google Maps и leaflet.js
На любом другом сайте, когда вы увеличиваете масштаб, все окна браузера увеличиваются при любом увеличении.
На Картах Google или Leaflet.js , когда вы нажимаете на масштаб карты, кажется, что он переопределяет эту функциональность и увеличивает и уменьшает масштаб карты точно так же, как если бы вы прокручивали ее пальцами или колесиком мыши.
Как они могут это сделать?
Чтобы уточнить — я также не хочу отключать масштабирование в окне просмотра. Я просто хочу, чтобы определенный раздел страницы игнорировал стандартное масштабирование (с помощью трекпада или мобильного устройства) и вместо этого интерпретировал масштабирование как только стандартное событие колеса прокрутки
Комментарии:
1. если вы используете фреймворк, вам нужно будет использовать комбинацию библиотеки анимации и библиотеки жестов. также я считаю, что для divs с определенным свойством css вы можете отключить поведение касания по умолчанию, но, к сожалению, я не помню с головы до ног. последний раз, когда я помню, что читал об этом, был в документации react-use-gesture . надеюсь, это поможет
Ответ №1:
Кажется, это работает, но если у кого-нибудь есть лучшее предложение, дайте мне знать.
element.addEventListener('wheel', event => {
const { ctrlKey } = event
if (ctrlKey) {
event.preventDefault();
return
}
}, { passive: false })
Я указываю div, и теперь масштабирование работает везде, кроме этого элемента