Jquery 调整大小后调用setCenter时,Google地图会跳转

Jquery 调整大小后调用setCenter时,Google地图会跳转,jquery,google-maps,google-maps-api-3,resize,center,Jquery,Google Maps,Google Maps Api 3,Resize,Center,我正在尝试做几乎完全正确的事情,因此我的代码看起来与当时给出的答案中建议的代码非常相似 但有件事真的让我恼火:当地图画布(地图容器)的宽度增加时,地图本身停留在画布的左侧,而额外的区域则添加在右侧。 大约一毫秒后map.setCenter(oldCenter),并且容器中的贴图位置发生更改(向右) 这种变化可以被视为(向右转),真的很烦人 是否有一种方法可以在调整地图大小的同时设置中心,而不是在调整后不久 我使用$(“#地图画布”).css(“宽度”,“100%”)调整地图大小。所以我想同步一个

我正在尝试做几乎完全正确的事情,因此我的代码看起来与当时给出的答案中建议的代码非常相似

但有件事真的让我恼火:当
地图画布
(地图容器)的宽度增加时,地图本身停留在画布的左侧,而额外的区域则添加在右侧。 大约一毫秒后
map.setCenter(oldCenter),并且容器中的贴图位置发生更改(向右)

这种变化可以被视为(向右转),真的很烦人

是否有一种方法可以在调整地图大小的同时设置中心,而不是在调整后不久

我使用
$(“#地图画布”).css(“宽度”,“100%”)调整地图大小。所以我想同步一个jQuery CSS事件和一个GoogleMaps事件

非常感谢

丁满

编辑


我想在左边显示一个侧边栏,所以当有人点击地图时,侧边栏就会出现,地图必须重新加载(中心应该保持不变)

为了向您展示,我做了一个测试,但这次地图的行为是完美的。JSFIDLE只包含我的部分代码,否则我将不得不发布更多的代码


我猜我的编码太糟糕了,以至于地图有点乱,对吗?

试试
map.panTo(旧中心)
这将使更改比setCenter()更为频繁。

我找到了解决方案:当
google.maps.event.trigger(map,'resize')
map.setOptions({center:oldCenter})在超时内调用,贴图在调整大小时跳转。jQuery.animate()后面的函数的行为与超时完全相同

我更新了我在问题中发布的JSFIDLE,使跳跃更加明显()。 当你点击地图显示边栏时,会有一个非常恼人的跳跃

如果JS底部的代码不是写在.animate()函数中,而是直接写在.animate()函数之后,则贴图看起来会更好()

编辑



显然,这只会对在Mac OS X上运行的Google Chrome产生影响。

我已经尝试过了,但我不希望地图在调整大小后移动。但是谢谢你的回答:)在你的代码中,你在哪里调用setCenter?顺便问一下,你的代码在哪里?是什么导致地图调整大小?请发布jsfiddle.net。这样一来,1)不清楚你到底在做什么2)不清楚你观察到了什么。3) 当然,地图在重新居中时会“跳跃”!这就是我所期望的。4) 如果调整大小后不想移动地图,为什么不先设置中心,然后调整大小?@MrUpsidown我编辑了这个问题