簡體   English   中英

當模態類處於活動狀態時,Google地圖會消失

[英]Google map disappear when modal class is active

我有這個模態:

<form id="contactModal">
<div id="mymodal2" class="" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
     <div class="modal-dialog">
           <div class="modal-content">
              <div class="modal-header">                  
              <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
                <span class="modal-title th2" id="lblModalLabel" name="lblModalLabel">Contact</span>
            </div>
            <div class="modal-body">

如果我不添加class="modal"類的話

<div id="mymodal2" class="fade modal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">

我的地圖沒有任何問題,問題是當我嘗試添加模態類時我的地圖消失了,為什么會發生?

---更新---

如果我運行沒有模態類的應用程序,如:

<div id="mymodal" class="" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" >

然后打開谷歌瀏覽器檢查器並通過它添加類。 它將地圖加載到模態中。

這是我的JS代碼:

 try {
            map = new GMaps({
                div: '#gmap_marker',
                lat: 19.4368277,
                lng: -99.1905598
            });


            map.addMarker({
                lat: 19.4368277,
                lng: -99.1905598,
                title: New City",
                infoWindow: {
                    content: '<strong>City</strong>'
                }
            });
            console.log("gmap processed");
        }
        catch (e) {
            alert(e);
        }

    $("#btnFirstMap").click(function () {


        try {
            map = new GMaps({
                div: '#gmap_marker',
                lat: 19.4368277,
                lng: -99.1905598
            });


            map.addMarker({
                lat: 19.4368277,
                lng: -99.1905598,
                title: "FirstMap",
                infoWindow: {
                    content: '<strong>City2</strong>'
                }
            });
        }
        catch (e) {
            alert(e);
        }

    });

    $("#btnCity3").click(function () {


        try {
            map = new GMaps({
                div: '#gmap_marker',
                lat: 18.6490907,
                lng: -91.8218911
            });


            map.addMarker({
                lat: 18.6490907,
                lng: -91.8218911,
                title: "City3,
                infoWindow: {
                    content: '<strong>City3</strong>'
                }
            });
        }
        catch (e) {
            alert(e);
        }

    });

確保:

1)顯式設置地圖容器大小,例如通過CSS:

div#map {
    width: 560px !important;
    height: 600px !important;
}

2)通過resize事件顯示模態對話框后重新加載地圖:

$('#myModal').on('show.bs.modal', function(e) {
    var map = createMap();
    google.maps.event.addListenerOnce(map, 'idle', function() {
        google.maps.event.trigger(map, 'resize'); 
    });
}) 

 $(document).ready(function() { $('#myModal').on('show.bs.modal', function(e) { var map = createMap(); google.maps.event.addListenerOnce(map, 'idle', function() { google.maps.event.trigger(map, 'resize'); }); }) }); function createMap() { var mapControl = new GMaps({ div: '#map', lat: -12.043333, lng: -77.028333 }); mapControl.addMarker({ lat: -12.043333, lng: -77.03, title: 'Lima', details: { database_id: 42, author: 'HPNeo' }, click: function(e) { if (console.log) console.log(e); alert('You clicked in this marker'); } }); return mapControl.map; } 
 div#map { width: 560px !important; height: 600px !important; } 
 <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.2.js"></script> <script type="text/javascript" src="http://getbootstrap.com/dist/js/bootstrap.js"></script> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript" src="https://hpneo.github.io/gmaps/gmaps.js"></script> <link rel="stylesheet" type="text/css" href="http://getbootstrap.com/dist/css/bootstrap.css"> <link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css"> <!-- Button trigger modal --> <button class="btn btn-primary btn-lg" id="modalOne" data-toggle="modal" data-target="#myModal">Show map</button> <!-- Modal --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span> </button> <h4 class="modal-title" id="myModalLabel">Map</h4> </div> <div class="modal-body"> <div id="map"></div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> 

Codepen

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM