代码之家  ›  专栏  ›  技术社区  ›  Dr1Ku Ace Suares user1266770

保持谷歌地图v3地图隐藏,显示时需要的

  •  31
  • Dr1Ku Ace Suares user1266770  · 技术社区  · 15 年前

    有没有办法阻止Google地图(JS,v3)从一开始就显示出来?我正在做一些预处理,并想显示我的'加载'微调器,直到一切都好去(更雄辩地说,隐藏地图-例如,容器) div 在所有预处理完成之前,显示地图)。

    连接地图的 idle 事件没有多大帮助,因为当这个事件发生时地图已经显示出来了。

    我知道那个集装箱 在加载后,我的第一个想法是清除 style 属性(同时收听 虚度

    也许用一个论据 new google.maps.Map 构造函数,或 MapOption ?

    有什么想法吗?

    提前谢谢!

    8 回复  |  直到 10 年前
        1
  •  69
  •   Charles    13 年前

    还记得打电话给:

    google.maps.event.trigger(map, 'resize');
    

    <div> . A display:none <部门>

        2
  •  5
  •   Tom    12 年前

    $("#GoogleMap").css({ opacity: 0, zoom: 0 });
    initialize();
    
    google.maps.event.addListener(map,"idle", function(){ 
         $('#Loader').hide();
         $("#GoogleMap").css({ opacity: 1, zoom: 1 });
    }); 
    
        3
  •  4
  •   Mohamed Moanis Audrius MeÅ¡kauskas    9 年前

    这对我有用。我正在使用JQuery库。

    $(document).ready(function(){
        $('#Checkbox').click(function(){
            $('#googleMapDiv').toggle();
            initialize(); // initialize the map
        });
    });
    
        4
  •  2
  •   Karim Samir    11 年前

    setTimeout(function() {
            google.maps.event.trigger(map, "resize");
            map.setCenter(new google.maps.LatLng(default_lat, default_lng));
            map.setZoom(default_map_zoom);
        }, 2000);
    

    om此链接 https://code.google.com/p/gmaps-api-issues/issues/detail?id=1448

        5
  •  2
  •   Geetesh    9 年前

    这会有用的

        google.maps.event.addListener(map, "idle", function ()
        {
            google.maps.event.trigger(map, 'resize');
        });
    
        6
  •  2
  •   long    6 年前

    <div> 设置样式:可见性。

    visibility = hidden ; 显示用途 visibility = visible

    原因是: visibility:hidden means that the contents of the element will be invisible, but the element stays in its original position and size.

        7
  •  1
  •   alexeyprog    14 年前

    更好的方法:

    gmap.redraw = function() {
        gmOnLoad = true;
        if(gmOnLoad) {
            google.maps.event.trigger(gmap, "resize");
            gmap.setCenter(gmlatlng);
            gmOnLoad = false;
        }
    }
    

    在show click事件中:

    $("#goo").click(function() {
      if ($("#map_canvas").css("display") == "none") {
        $("#YMapsID").toggle();
        $("#map_canvas").toggle();
        if (gmap != undefined) {
            gmap.redraw();
        }
      }
    });
    
        8
  •  1
  •   idea    14 年前

    取决于你正在做什么,另一个可能性可能是在每个进程完成时将多个bool设置为true。

    如果您有一个要等待的地理代码服务正在运行,那么可以调用var 地质状态

    在地理编码器的结果部分,将GeoState设置为true,