【问题标题】:Leaflet map on hide div隐藏 div 上的传单地图
【发布时间】:2014-07-03 07:23:26
【问题描述】:

我知道有一些关于此的主题,但我仍然无法管理它。

$(document).ready(function(){
            var map = L.map('map',{
                center:[30.0,0.0],
                zoom: 2,
            });

            L.tileLayer('http://{s}.tiles.mapbox.com/v3/mboucas.ilm9bh3m/{z}/{x}/{y}.png', {
                attribution: '',
                maxZoom: 18
            }).addTo(map);

            var markers = new L.MarkerClusterGroup();

            var points_rand = L.geoJson(points, {
                onEachFeature: function (feature, layer)
                {
                    var marker = L.marker(feature.geometry.coordinates);
                    markers.addLayer(marker);
                }   
            });

            map.addLayer(markers);

            map.fitBounds(markers.getBounds());

            $("#map").hide();

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

                $("#map").slideDown();
                map.invalidateSize(false);
                map.fitBounds(markers.getBounds());

            });

            $(".container").hover(function(){ 

            },function(){ 
                if($("#map").css("display")=="block") 
                { 
                    $("#map").slideUp(); 
                } 
            }); 
        });

我什么都试过了

map.invalidateSize()

L.Util.requestAnimFrame(map.invalidateSize, map, false, map._container)

setTimeout(function(){ map.invalidateSize()}, 400)

没有任何作用。

请帮帮我

感谢您的帮助。

【问题讨论】:

    标签: javascript map hide hidden leaflet


    【解决方案1】:

    我有类似的问题,试试这个:

    map._onResize();
    

    这将强制调整地图大小。

    【讨论】:

    • 我对代码进行了一些更改,但仍然是同样的问题。我只是不想隐藏,而是降低高度。 map._onResize 几乎可以工作,但是 map.fitBounds(markers.getBounds());没有。
    • fitbounds 必须检测 css 上的高度,而不是实际高度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多