gpt4 book ai didi

javascript - 灰色框出现在模态框中嵌入的谷歌地图的部分中

转载 作者:行者123 更新时间:2023-12-03 13:12:23 25 4
gpt4 key购买 nike

我在通过 v3 API 在模态框中嵌入 Google Map 时遇到问题。

显示模式时, map Canvas 中会出现灰色框。 调整浏览器窗口的大小、调出 Web Inspector 等使所有 map 图 block 可见,即它“强制重新渲染” map 。

map 元素的父元素( section#map-modal ,见下面的代码)有 display: none在页面加载时在其 CSS 中设置。 JS模态代码自动设置display: block单击显示按钮时。如果我暂时删除 display: none从模态元素中, map 在页面刷新时正确呈现。谷歌地图不喜欢隐藏的父元素吗?

我正在使用 Twitter 的 Bootstrap 模态 jQuery 插件,并使用 CSS 控制模态本身。它是固定位置的,有像素宽度等。没什么不寻常的。

我当然已经在谷歌上搜索了解决方案,并且很多点都指向触发 resize 的 Google API 方法。事件:

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

我确实这样做了,但没有用。

相关代码:https://gist.github.com/1591488

如您所见,我在第 39 行触发了事件。

(按侧边栏底部的查看大 map 按钮)。

文件:
  • fagerhult.js
  • fagerhult.map.js
  • bootstrap-modal.js
  • master.css

  • 我会非常感谢任何帮助或额外的一双眼睛,因为我很快就会为此发疯。

    最佳答案

    尝试使用模式事件处理程序。我认为这是确保在显示模式后调整大小而不重写任何插件的最简洁(和正确)的方法:

    $('#map-modal').on('shown', function () {
    google.maps.event.trigger(map, 'resize');
    })

    更新:我刚刚意识到这个解决方案仍然不能正确地居中 map ,所以我需要再添加一个命令:
    $('#map-modal').on('shown', function () {
    google.maps.event.trigger(map, 'resize');
    map.setCenter(new google.maps.LatLng(42.3605336, -72.6362989));
    })

    关于javascript - 灰色框出现在模态框中嵌入的谷歌地图的部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8812268/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com