我有一个谷歌地图应用程序,如果它太大,将调整地图div的大小,我遇到的问题是,我正在尝试使用Jquerys动画,并在它完成之前返回功能,我必须触发到谷歌已调整大小的地图。
因此,地图会在触发之前放大并设置边界,从而使其偏离。并且只有在第二次触发时才能正常工作。
function doResize() {
if ($("#map_div").width() > 600) {
$("#stores").hide(0, function(){
$("#map_div").animate({width: '500px'}, function(){
google.maps.event.trigger(G_MAP, 'resize');
$("#stores").fadeIn(1000);
});
});
}
}
我不能将其余的代码放在回调中有两个主要原因,一个是它的一个大功能,它在两个地方使用。宽度也只有600多次。
注意当你第一次点击newyork它的偏移而不是居中时,然后点击一个不同的状态然后点击纽约。
编辑:
由于我无法使动画同步并执行:
while($("#map_div").width() > 500) {
$("#map_div").width($("#map_div").width() - 1)
}
根本不光滑,我决定放弃动画。迫使Jquery必须运行异步实际上有时会垮台。特别是当javascript本身是单线程时,你会认为他们可以选择等到它完成。
答案 0 :(得分:4)