Google Maps inside Bootstrap tab-content are
我正在尝试将Google Map放在Bootstrap内容标签中(此)。这是我的地图代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <style> #map_canvas { width: 500px; height: 400px; } </style> <script src="https://maps.googleapis.com/maps/api/js?sensor=false"> function initialize() { var map_canvas = document.getElementById('map_canvas'); var mapOptions = { center: new google.maps.LatLng(44.5403, -78.5463), zoom: 8, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(map_canvas, mapOptions); }; google.maps.event.addDomListener(window, 'load', initialize); |
这是我放置map_canvas div的地方:
1 2 3 4 5 6 7 8 9 10 11 12 | ...other divs here... ...blablabla a form here... <ul> ...contact info... </ul> |
这是div的代码:
1 2 3 4 | $('#navtabs a').click(function (e) { e.preventDefault(); $(this).tab('show'); }); |
真的,没什么特别的。但是由于某种原因,地图偏向侧面,看起来像这样:
如果我尝试移动它,它将自动修复为如图所示的一半外。省略bootstrap.css可解决此问题。将
它与此处建议的最大宽度问题无关,因为我使用的Bootstrap是2.3.2,它解决了该问题并默认包含了这些行(将它们添加到我自己的CSS中不会帮助之一):
1 2 3 4 | #map_canvas img, .google-maps img { max-width: none !important; } |
我尝试使用chrome开发人员工具并扫描div及其父级,我在bootstrap css中浏览了
任何帮助将不胜感激。
我有同样的问题。如果您将绑定到
当我的地图以自举模式出现时,我有一个针对此问题的解决方案。
当的标签(或在我的情况模态)的内容加载完成呼叫:
1 | google.maps.event.trigger(MAP_OBJECT,"resize"); |
并且可选:
1 | MAP_OBJECT.setCenter(center); |
诚然,一会儿地图看起来像它在屏幕截图中的样子,然后看起来很正常。
对不起,我没有确定的解决方案!
@freakycue是正确的。我需要做约瑟夫的答案,但将其绑定到所示的事件。
这就是为我工作的结果:
1 2 3 | $("#navtabs a").on("shown", function(e) { google.maps.event.trigger(MAP_OBJECT,"resize"); }); |