在浏览器上居中调整谷歌地图(V3)的大小(响应)
Center Google Maps (V3) on browser resize (responsive)
我的页面中有一个100%页面宽度的谷歌地图(V3),在中间有一个标记。当我调整浏览器窗口宽度时,我希望地图保持居中(响应)。现在,地图只停留在页面的左侧,并变得更小。
更新多亏了邓肯,它才真正发挥了作用。这是最后一个代码:
var center;
function calculateCenter() {
center = map.getCenter();
}
google.maps.event.addDomListener(map, 'idle', function() {
calculateCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
当窗口调整大小时,您需要有一个事件侦听器。这对我有效(把它放在初始化函数中):
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
检测浏览器调整大小事件,调整谷歌地图的大小,同时保留中心点:
var map = ...; // your map initialisation code
google.maps.event.addDomListener(window, "resize", function() {
var center = map.getCenter();
google.maps.event.trigger(map, "resize");
map.setCenter(center);
});
当通过其他方式(例如使用jQuery UI"resizable"控件)调整谷歌地图的大小时,您可以在其他事件处理程序中使用相同的代码。
来源:http://andrewodendaal.com/keep-google-map-v3-centered-when-browser-is-resized/感谢@smftre的链接。
注意:此代码链接在@smftre对已接受答案的评论中。我认为它值得作为自己的答案添加,因为它确实优于公认的答案。它消除了跟踪中心点的全局变量和更新该变量的事件处理程序的需要
w3schools.com上的一些好例子。我使用了以下内容,效果很好。
google.maps.event.addDomListener(window, 'resize', function() {
map.panTo(myLatlng);
});
http://www.w3schools.com/googleapi/google_maps_events.asp
html:创建一个具有您选择的 id的div
<div id="map"></div>
js:创建一个映射并将其附加到刚刚创建的div
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: new google.maps.LatLng(-33.890542, 151.274856)
});
窗口调整大小时居中
var center = map.getCenter();
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
将上述解决方案更新为es6。
let center;
const addMapListener = google.maps.event.addDomListener;
addMapListener(map, 'idle', () => center = map.getCenter());
addMapListener(window, 'resize', () => map.setCenter(center));
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 标记的实时更新,无需加载页面谷歌地图API V3
- 响应动画手风琴不工作
- 如何从SeleniumWebdriver获取异步Javascript响应
- 谷歌地图v3标记没有显示ie8和9
- Google Maps Javascript API V3 滚动响应速度低于简单的 Google 地图嵌入
- 从谷歌 v3 API 响应中检索前两位数字
- 我们能否让谷歌地图Javascript地理编码API v3在响应中返回自定义标识符
- 谷歌地图v3方向渲染器重新绘制响应
- 谷歌地图V3灰色瓷砖响应
- 在浏览器上居中调整谷歌地图(V3)的大小(响应)
- 为什么响应结果是零,谷歌地图v3
- 在Google Maps API V3上为Geocoding JSON响应添加回调的方法