Saya menggunakan Google Maps API (v3) untuk menggambar beberapa peta pada satu halaman. Satu hal yang ingin saya lakukan adalah menonaktifkan zoom ketika Anda menggulir roda mouse di atas peta, tapi saya tidak yakin bagaimana caranya.
Saya telah menonaktifkan scaleControl (yaitu menghapus elemen UI penskalaan), tetapi ini tidak mencegah penskalaan roda gulir.
Ini adalah bagian dari fungsi saya (ini adalah plugin jQuery sederhana):
$.fn.showMap = function(options, addr){
options = $.extend({
navigationControl: false,
mapTypeControl: false,
scaleControl: false,
draggable: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}, options);
var map = new google.maps.Map(document.getElementById($(this).attr('id')), options);
// Code cut from this example as not relevant
};
jquery
google-maps
google-maps-api-3
jquery-plugins
aaronrussell
sumber
sumber
Jawaban:
Di versi 3 Maps API Anda cukup mengatur
scrollwheel
opsi menjadi false dalam properti MapOptions :Jika Anda menggunakan Maps API versi 2, Anda harus menggunakan panggilan API disableScrollWheelZoom () sebagai berikut:
The
scrollwheel
zoom diaktifkan secara default di versi 3 dari Maps API, tapi dalam versi 2 dinonaktifkan kecuali secara eksplisit diaktifkan denganenableScrollWheelZoom()
panggilan API.sumber
disableDefaultUI: true
dapat menggantikannavigationControl: false, mapTypeControl: false, scaleControl: false
Kode Daniel melakukan pekerjaannya (terima kasih banyak!). Tapi saya ingin menonaktifkan zoom sepenuhnya. Saya menemukan saya harus menggunakan keempat opsi ini untuk melakukannya:
Lihat: Spesifikasi objek MapOptions
sumber
scrollwheel
harus semua huruf kecil (hanya menangkap saya dengan menaikkan W)Kalau-kalau Anda ingin melakukan ini secara dinamis;
Kadang-kadang Anda harus menunjukkan sesuatu yang "kompleks" di atas peta (atau peta itu adalah bagian kecil dari tata letak), dan pembesaran gulir ini berada di tengah, tetapi begitu Anda memiliki peta yang bersih, cara pembesaran seperti ini bagus.
sumber
Tetap sederhana! Variabel Google maps asli, tidak ada barang ekstra.
sumber
Sampai sekarang (Oktober 2017) Google telah menerapkan properti khusus untuk menangani pembesaran / pengguliran, yang disebut
gestureHandling
. Tujuannya adalah untuk menangani operasi perangkat seluler, tetapi juga memodifikasi perilaku browser desktop. Ini dari dokumentasi resmi :Singkatnya, Anda dapat dengan mudah memaksa pengaturan untuk "selalu dapat diperbesar" (
'greedy'
), "tidak pernah dapat diperbesar" ('none'
), atau "pengguna harus menekan CRTL / ⌘ untuk mengaktifkan zoom" ('cooperative'
).sumber
Saya membuat plugin jQuery yang lebih maju yang memungkinkan Anda untuk mengunci atau membuka kunci peta dengan tombol yang bagus.
Plugin ini menonaktifkan iframe Google Maps dengan div overlay transparan dan menambahkan tombol untuk unlockit. Anda harus menekan selama 650 milidetik untuk membukanya.
Anda dapat mengubah semua opsi untuk kenyamanan Anda. Lihat di https://github.com/diazemiliano/googlemaps-scrollprevent
Inilah beberapa contohnya.
sumber
Edit in JSFiddle Result JavaScript HTML CSS
" benar-benar bagian dari kode?Dalam kasus saya yang terpenting adalah mengatur
'scrollwheel':false
init. Perhatikan: Saya menggunakanjQuery UI Map
. Di bawah ini adalah judul fungsi init CoffeeScript saya :sumber
Untuk berjaga-jaga, Anda menggunakan perpustakaan GMaps.js , yang membuatnya sedikit lebih mudah untuk melakukan hal-hal seperti Geocoding dan pin khusus, berikut cara Anda mengatasi masalah ini menggunakan teknik yang dipelajari dari jawaban sebelumnya.
sumber
Untuk seseorang yang bertanya-tanya bagaimana cara menonaktifkan Javascript Google Map API
Ini akan memungkinkan gulir zoom jika Anda mengklik peta sekali. Dan nonaktifkan setelah mouse Anda keluar dari div.
Berikut ini beberapa contohnya
sumber
Anda hanya perlu menambahkan opsi peta:
sumber
Solusi sederhana:
Sumber: https://github.com/Corsidia/scrolloff
sumber
Hanya memetikan siapa pun yang tertarik dengan solusi css murni untuk ini. Kode berikut melapisi div transparan di atas peta, dan memindahkan div transparan di belakang peta saat diklik. Overlay mencegah zoom, sekali diklik, dan di belakang peta, zoom diaktifkan.
Lihat posting blog saya Google maps toggle zoom dengan css untuk penjelasan cara kerjanya, dan pena codepen.io/daveybrown/pen/yVryMr untuk demo yang berfungsi.
Penafian: ini terutama untuk pembelajaran dan mungkin tidak akan menjadi solusi terbaik untuk situs web produksi.
HTML:
CSS:
sumber
Gunakan potongan kode itu, yang akan memberi Anda semua warna dan kontrol zoom peta google. ( scaleControl: false dan scrollwheel: false akan mencegah roda mouse memperbesar atau memperkecil)
sumber
Saya melakukannya dengan contoh sederhana ini
jQuery
CSS
Atau gunakan opsi gmap
sumber