saya punya halaman dan peta google di dalam div tersembunyi pada awalnya. Saya kemudian menunjukkan div setelah saya mengklik tautan tetapi hanya bagian kiri atas peta yang muncul.
saya mencoba menjalankan kode ini setelah klik:
map0.onResize();
atau:
google.maps.event.trigger(map0, 'resize')
ada ide. di sini adalah gambar dari apa yang saya lihat setelah menunjukkan div dengan peta tersembunyi di dalamnya.
Jawaban:
Baru saja mengujinya sendiri dan inilah cara saya mendekatinya. Cukup lurus ke depan, beri tahu saya jika Anda membutuhkan klarifikasi
HTML
CSS
Javascript
sumber
Saya mengalami masalah yang sama dan menemukan bahwa ketika menunjukkan div, panggil
google.maps.event.trigger(map, 'resize');
dan tampaknya menyelesaikan masalah untuk saya.sumber
Jika Anda tidak memiliki peta variabel, itu harus menjadi elemen pertama (kecuali Anda melakukan sesuatu yang bodoh) di
div
yang berisi GMAP.sumber
Saya memiliki peta Google di dalam tab Bootstrap, yang tidak ditampilkan dengan benar. Ini adalah perbaikan saya.
sumber
'a[href="#profileTab"]'
untukstep-2
yang merupakan nama dari DIV yang berisi DIV peta.Cara menyegarkan peta saat Anda mengubah ukuran div Anda
Tidak cukup hanya dengan menelepon.
google.maps.event.trigger(map, 'resize');
Anda juga harus mengatur ulang pusat peta.Cara mendengarkan acara pengubahan ukuran
Angular (ng-show atau runtuhnya ui-bootstrap)
Bind langsung ke visibilitas elemen daripada nilai yang terikat dengan ng-show, karena $ watch dapat diaktifkan sebelum ng-show diperbarui (sehingga div akan tetap tidak terlihat).
jQuery .show ()
Gunakan panggilan balik bawaan
Bootstrap 3 Modal
sumber
Jika Anda memiliki Google Map yang disisipkan dengan menyalin / menempelkan kode iframe dan Anda tidak ingin menggunakan Google Maps API , ini adalah solusi mudah. Cukup jalankan baris javascript berikut ketika Anda menunjukkan peta yang tersembunyi. Itu hanya mengambil kode HTML iframe dan memasukkannya di tempat yang sama, sehingga membuatnya lagi:
versi jQuery:
HTML:
Contoh berikut berfungsi untuk peta yang awalnya disembunyikan di tab Bootstrap 3:
sumber
https://www.google.com/maps/embed/v1/place?..
Dimungkinkan juga untuk hanya memicu acara ukuran jendela asli.
Google Maps akan memuat ulang sendiri secara otomatis:
sumber
Saya memiliki masalah yang sama, yang
google.maps.event.trigger(map, 'resize')
tidak berfungsi untuk saya.Apa yang saya lakukan adalah meletakkan timer untuk memperbarui peta setelah meletakkan
div
...Saya tidak tahu apakah ini cara yang lebih mudah untuk melakukannya tetapi berhasil!
sumber
Dengan jQuery Anda bisa melakukan sesuatu seperti ini. Ini membantu saya memuat Google Map di Umbraco CMS pada tab yang tidak akan langsung terlihat.
sumber
Solusi saya sangat sederhana dan efisien:
HTML
CSS
Jquery
sumber
Atau jika Anda menggunakan gmaps.js , hubungi:
ketika div Anda ditampilkan.
sumber
Saya kira pertanyaan aslinya adalah dengan peta yang diinisialisasi dalam div halaman yang tersembunyi. Saya memecahkan masalah yang sama dengan mengubah ukuran peta di div tersembunyi pada dokumen siap, setelah diinisialisasi, terlepas dari status tampilan. Dalam kasus saya, saya memiliki 2 peta, satu ditampilkan dan satu disembunyikan ketika mereka diinisialisasi dan saya tidak ingin menginisialisasi peta setiap kali ditampilkan. Itu adalah posting lama, tapi saya harap ini membantu siapa saja yang mencari.
sumber
Saya menemukan ini berfungsi untuk saya:
untuk menyembunyikan:
memperlihatkan:
sumber
Jika digunakan di dalam tab Bootstrap v3, yang berikut ini akan berfungsi:
dimana
tab-location
ID tab berisi peta.sumber
Persis seperti yang ditunjukkan oleh John Doppelmann dan HoffZ, kumpulkan semua kode seperti di fungsi div Anda atau acara klik:
Ini bekerja dengan baik untuk saya
sumber
Solusi saya adalah:
CSS:
jQuery:
sumber
Saya tidak suka bahwa peta akan dimuat hanya setelah div tersembunyi terlihat. Dalam korsel, misalnya, itu tidak terlalu berhasil.
Solusi saya ini adalah menambahkan kelas ke elemen tersembunyi untuk menyembunyikannya dan menyembunyikannya dengan posisi absolut, lalu merender peta, dan menghapus kelas setelah memuat peta.
Diuji dalam Bootstrap Carousel.
HTML
<div class="item loading"><div id="map-canvas"></div></div>
CSS
JS
sumber
gunakan baris kode ini ketika Anda ingin menampilkan peta.
sumber
sumber
Pos pertama. GoogleMap google saya berada dalam div kontainer dengan {display: none} hingga tab diklik. Punya masalah yang sama dengan OP. Ini bekerja untuk saya:
Simpan kode ini di dalam dan di akhir kode Anda di mana tab div kontainer Anda diklik dan mengungkapkan div tersembunyi Anda. Yang penting adalah bahwa div kontainer Anda harus terlihat sebelum inisialisasi dapat dipanggil.
Saya mencoba sejumlah solusi yang diusulkan di sini dan halaman lain dan mereka tidak berhasil untuk saya. Beri tahu saya jika ini cocok untuk Anda. Terima kasih.
sumber
Tambahkan kode ini sebelum div atau berikan ke file js:
Acara ini akan dipicu setelah div dimuat sehingga akan menyegarkan konten peta tanpa harus menekan F5
sumber
Setelah menunjukkan peta saya melakukan geocoding alamat kemudian mengatur pusat peta. Itu
google.maps.event.trigger(map, 'resize');
tidak bekerja untuk saya.Saya harus menggunakan a
map.setZoom(14);
Kode di bawah ini:
sumber
sumber