Javascript 谷歌地图API-如何更改地图高度?
我在我的网站上使用谷歌地图API。我想有一个按钮,可以展开和折叠地图。问题是,如果我以较小的高度加载地图,当我增加高度(通过JS)时,地图不会填充整个区域,而是有一个灰色空间(见下图)。有趣的是,尽管div从200px开始(在CSS中设置),但它下面的映射(扩展后)更大。它有一些价值,我不知道它是从哪里来的 我试着调用“google.maps.event.trigger(map,'resize');”,但那没有任何作用 倒塌: 扩大: 这是按下按钮时运行的JS代码:Javascript 谷歌地图API-如何更改地图高度?,javascript,css,google-maps-api-3,Javascript,Css,Google Maps Api 3,我在我的网站上使用谷歌地图API。我想有一个按钮,可以展开和折叠地图。问题是,如果我以较小的高度加载地图,当我增加高度(通过JS)时,地图不会填充整个区域,而是有一个灰色空间(见下图)。有趣的是,尽管div从200px开始(在CSS中设置),但它下面的映射(扩展后)更大。它有一些价值,我不知道它是从哪里来的 我试着调用“google.maps.event.trigger(map,'resize');”,但那没有任何作用 倒塌: 扩大: 这是按下按钮时运行的JS代码: changeMapSize(
changeMapSize(btn) {
if (this.size === 'expanded') {
this.css('height', '200px');
google.maps.event.trigger(map, 'resize');
this.size = 'collapsed';
btn.text('Expand map');
}
else {
this.css('height', '400px');
google.maps.event.trigger(map, 'resize');
this.size = 'expanded';
btn.text('Hide map');
}
}
CSS:
如果您愿意,可以查看代码。这已经得到了回答
特别是,不再需要google.maps.event.trigger(映射“resize”),也不再是MapsAPI的一部分
还要检查您是否正在调整映射div的大小,而不是包含映射div的div。这已得到回答
特别是,不再需要google.maps.event.trigger(映射“resize”),也不再是MapsAPI的一部分
还要检查是否正在调整映射div的大小,而不是包含映射div的div。map未定义。看看链接,你可能想要这个。你是对的。我真不敢相信这个解决方案有多明显。谢谢现在它起作用了。但是,它不适用于动画(过渡)。当我从css中删除这5行时,效果很好。但我也想有动画。地图是未定义的。看看链接,你可能想要这个。你是对的。我真不敢相信这个解决方案有多明显。谢谢现在它起作用了。但是,它不适用于动画(过渡)。当我从css中删除这5行时,效果很好。但我也希望有这样的动画。
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 200px;
-moz-transition: height .5s;
-ms-transition: height .5s;
-o-transition: height .5s;
-webkit-transition: height .5s;
transition: height .5s;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}