Tắt Ctrl + Cuộn để Thu phóng google maps


95

Có ai biết cách tắt dấu CTRL+ Scrollkhông?

Đầu tiên khi con lăn chuột được di chuyển, Bản đồ sẽ Phóng to / Thu nhỏ. Nhưng bây giờ nó yêu cầu nhấn CTRL+ Con lăn chuột để Phóng to / thu nhỏ.

Làm cách nào để tắt tính năng này? Tôi dường như không thể tìm thấy bất cứ điều gì trong tài liệu:

https://developers.google.com/maps/documentation/javascript/controls#ControlOptions

nhập mô tả hình ảnh ở đây


liên kết này có thể giúp bạn stackoverflow.com/questions/21992498/...
Brajesh Kanungo

@BrajeshKanungo không liên quan đến tính năng ở trên - đây là một tính năng mới được Google Maps giới thiệu - tôi muốn tắt nó.
Dawood Awan

Ok bạn có thể cho tôi biết bạn đang sử dụng phiên bản API nào không.
Brajesh Kanungo


Điều này cũng vừa xuất hiện trên trang web của chúng tôi, vì vậy có thể là bản cập nhật trên API của googles
Tom

Câu trả lời:


153

Bạn cần chuyển gestureHandling: 'greedy'đến các tùy chọn bản đồ của mình.

Tài liệu: https://developers.google.com/maps/documentation/javascript/interaction#gestureHandling

Ví dụ:

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  gestureHandling: 'greedy'
});

Cập nhật! Vì Google Maps, 3.35.6bạn cần bao bọc thuộc tính vào một trình bao bọc tùy chọn:

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  options: {
    gestureHandling: 'greedy'
  }
});

Cảm ơn bạn ealfonsovề thông tin mới


@DiegoAndrade Tôi không biết chi tiết. có thể nó đã không được triển khai vào thời điểm đó. Nhưng nó có mặt trên các phiên bản 3.29(đóng băng), 3.30(phát hành) và trở lên ( 3.exp, thử nghiệm).
kano

Có @Kano, trong các tài liệu này, tính năng này vẫn còn, nhưng trong các thử nghiệm của tôi ở đây, nó không hoạt động. Tôi thực sự không biết tại sao họ lại xóa cái này :(
Diego Andrade

1
Tôi biết nó hiện diện. Đó là điểm. Bắt đầu với 3.30Nó không hoạt động. Tôi đã thử nghiệm tất cả các phiên bản này. Dù sao, nó đang hoạt động với 3.26.
Diego Andrade

3
cuối cùng là câu trả lời đúng. Tôi đã mất một thời gian dài trên Google cho việc này. Tại sao google không đặt điều này làm mặc định là ngoài tôi.
woens

2
Bingo, đây là giải pháp hoàn hảo.
N Khan

17

Nếu bạn đồng ý với việc tắt hoàn toàn tính năng cuộn để thu phóng, bạn có thể sử dụng scrollwheel: false. Người dùng vẫn có thể thu phóng bản đồ bằng cách nhấp vào các nút thu phóng nếu bạn cung cấp cho họ điều khiển thu phóng ( zoomControl: true).

Tài liệu: https://developers.google.com/maps/documentation/javascript/reference (tìm kiếm trang cho "con lăn")

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  scrollwheel: false,
  zoomControl: true
});

7

Nếu bạn đang muốn chỉ ẩn lớp phủ nhưng vẫn vô hiệu hóa khả năng cuộn và thu phóng (như trước đây), bạn có thể sử dụng CSS để ẩn lớp phủ:

.gm-style-pbc {
opacity: 0 !important;
}

Lưu ý rằng điều này cũng sẽ ẩn nó cho thiết bị di động, vì vậy bạn có thể sử dụng một cái gì đó như thế này để đảm bảo nó hiển thị "sử dụng hai ngón tay để di chuyển bản đồ":

@media only screen and ( min-width: 980px ) {
.gm-style-pbc {
opacity: 0 !important;
}
}

Cảm ơn bạn. Tôi ngạc nhiên là nhiều người không muốn điều này. Đó là một thông báo lớp phủ rất mất tập trung và hầu như làm mất đi trải nghiệm bản đồ đối với tôi.
BaseZen

5

Việc lồng thuộc tính gestureHandlingtrong một thuộc optionstính phù hợp với tôi trên phiên bản "3.35.6".

map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        options:{
            gestureHandling: 'greedy'
        }
    });

4

Tôi không thể tìm được bản gestureHandling: 'greedy'sửa lỗi cho mình vì tôi có lớp phủ trên bản đồ. Cuối cùng tôi đã phát hiện ra mousewheelsự kiện và đặt thuộc ctrltính thành 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 });
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.