Czy ktoś wie, jak wyłączyć CTRL+ Scroll
?
Najpierw po przesunięciu kółka myszy mapa była powiększana / pomniejszana. Ale teraz prosi o naciśnięcie CTRL+ kółko myszy, aby powiększyć / pomniejszyć.
Jak możemy wyłączyć tę funkcję? Nie mogę znaleźć niczego w dokumentacji:
https://developers.google.com/maps/documentation/javascript/controls#ControlOptions
javascript
google-maps
Dawood Awan
źródło
źródło
Odpowiedzi:
Musisz przejść
gestureHandling: 'greedy'
do opcji mapy.Dokumentacja: https://developers.google.com/maps/documentation/javascript/interaction#gestureHandling
Na przykład:
const map = new google.maps.Map(mapElement, { center: { 0, 0 }, zoom: 4, gestureHandling: 'greedy' });
Aktualizacja! Ponieważ Google Maps
3.35.6
, musisz zamknąć właściwość w opakowaniu opcji:const map = new google.maps.Map(mapElement, { center: { 0, 0 }, zoom: 4, options: { gestureHandling: 'greedy' } });
Dziękuję
ealfonso
za nowe informacjeźródło
3.29
(frozen),3.30
(release) i nowszych (3.exp
eksperymentalnych).3.30
To nie działa. Przetestowałem wszystkie te wersje. W każdym razie, to już działa z3.26
.Jeśli możesz całkowicie wyłączyć przewijanie, aby powiększyć, możesz użyć
scrollwheel: false
. Użytkownik nadal będzie mógł powiększać mapę, klikając przyciski powiększenia, jeśli udostępnisz mu element sterujący powiększeniem (zoomControl: true
).Dokumentacja: https://developers.google.com/maps/documentation/javascript/reference (wyszukaj na stronie „scrollwheel”)
const map = new google.maps.Map(mapElement, { center: { 0, 0 }, zoom: 4, scrollwheel: false, zoomControl: true });
źródło
Jeśli chcesz tylko ukryć nakładkę, ale nadal wyłączasz możliwość przewijania i powiększania (tak jak poprzednio), możesz użyć CSS, aby ukryć nakładkę:
.gm-style-pbc { opacity: 0 !important; }
Pamiętaj, że spowoduje to ukrycie mapy również na urządzeniach mobilnych, więc możesz użyć czegoś takiego, aby upewnić się, że pokazuje „użyj dwóch palców, aby przesunąć mapę”:
@media only screen and ( min-width: 980px ) { .gm-style-pbc { opacity: 0 !important; } }
źródło
Zagnieżdżanie
gestureHandling
weoptions
właściwości działało dla mnie w wersji "3.35.6".map = new google.maps.Map(document.getElementById('map'), { zoom: 12, options:{ gestureHandling: 'greedy' } });
źródło
Nie udało mi się
gestureHandling: 'greedy'
naprawić tej poprawki, ponieważ miałem nakładkę na mapę. Skończyło się na wykryciumousewheel
zdarzenia i ustawieniuctrl
właściwości na true.// Load maps and attach event listener to scroll event. var $map = $('.map'); $map[0].addEventListener('wheel', wheelEvent, true); function wheelEvent(event) { // Set the ctrlKey property to true to avoid having to press ctrl to zoom in/out. Object.defineProperty(event, 'ctrlKey', { value: true }); }
źródło