Javascript 隐藏父div时Google maps边界/缩放不起作用

Javascript 隐藏父div时Google maps边界/缩放不起作用,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我有一大页的用户数据,这些数据的格式便于使用手风琴区域。 单击手风琴控件,将显示相关信息。再次单击它,它将被隐藏 其中一个手风琴里面有一个谷歌地图,上面有多个别针。 当父手风琴div处于隐藏状态时,边界/缩放无效。当它可见时,边界/缩放起作用 我只能想象DOM将正在折叠的父级div设置为零高度,因此Google Maps在堆栈的整个过程中将其“视”为零,并相应地根据零高度和宽度设置边界 这是一把小提琴: 默认设置是关闭手风琴。单击“打开”按钮时,您将看到地图包含两个标记,但缩放距离太远 如果在

我有一大页的用户数据,这些数据的格式便于使用手风琴区域。 单击手风琴控件,将显示相关信息。再次单击它,它将被隐藏

其中一个手风琴里面有一个谷歌地图,上面有多个别针。 当父手风琴
div
处于隐藏状态时,边界/缩放无效。当它可见时,边界/缩放起作用


我只能想象DOM将正在折叠的父级
div
设置为零高度,因此Google Maps在堆栈的整个过程中将其“视”为零,并相应地根据零高度和宽度设置边界

这是一把小提琴:

默认设置是关闭手风琴。单击“打开”按钮时,您将看到地图包含两个标记,但缩放距离太远

如果在css中注释掉
.accordianarea

显示:无;
不透明度:0;
默认情况下,您将看到手风琴处于打开状态,贴图边界/缩放工作正常

有没有办法“强制”谷歌地图在手风琴关闭的情况下正确渲染?

新答案: 在深入挖掘之后,我发现有一个
minZoom
选项:

最小缩放(可选)

将在地图上显示的最小缩放级别。如果省略或设置为null,则使用当前贴图类型的最小缩放

如果我们检查您的
map\u zoom()
函数,它将在第一次调用时返回
8

如果我们将该
8
minZoom
(而不是常规的
zoom
)一起使用,则无需再次调用
map\u zoom()

var defaultZoom = 8;
var allMarkers = new Array();
var mapOptions = {
    minZoom: defaultZoom,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};

旧答案:
  • map\u zoom()
    移动到
    map\u init()
    的外部,这样我们就可以在任何地方调用它
  • $('.accordiancontrol')。单击
    ,调用
    map\u zoom()
    更新我们的缩放:
  • $('.accordiancontrol')。单击(函数(){
    如果($(“#accordianarea”+thisId.).is(“:可见”)){
    //封闭区域
    }
    否则{
    //开放区域
    //更新缩放
    map_zoom();
    }
    });
    
    “我只能想象DOM将正在折叠的父div设置为零高度,因此Google Maps在堆栈中一直将其视为零,并相应地根据零高度和宽度设置边界。”

    如前所述,“缩放”基于零高度和零宽度设置边界。。您可以做的是调用
    map_init()在地图上显示。这样div就有了高度和宽度,而map就有了合适的缩放范围

            $('.accordiancontrol').click(function(){
                            var thisId = $(this).attr('id').replace(/^\D+/g,"")
                            if ($('#accordianarea' + thisId).is(":visible"))
                            {
                               // Close accordianarea
                            }
                            else
                            {
                             map_init();
                            // Open accordianarea
                            }
                        });
    

    刚刚做了一些进一步的测试,如果针脚之间的距离太远,minZoom会导致一些其他问题。基本上它做它应该做的。它设置了最小缩放。结果是地图在图钉上居中,但无法缩小到足以看到其中任何一个。你能分享一个更新提琴,让我试试吗?也许我以前的答案会更好,如果你在加载后更新PIN。(可能包括在OP中?)