您需要保存每张地图的中心,然后在激活新手风琴后设置它(并且该地图具有大小,当地图/手风琴被隐藏时,其计算大小为零,因此标记以div的左上角为中心)。
一个选项:
var maps = [];
jQuery("#accordion").accordion({
change: function(event, ui) {
for (var i = 0; i < maps.length; i++) {
google.maps.event.trigger(maps[i], 'resize');
maps[i].setCenter(maps[i]._center);
}
}
}).find('.map').each(function(i, o) {
var latLong = new google.maps.LatLng(
jQuery(this).data("lat"), jQuery(this).data("long"));
var map = new google.maps.Map(o, {
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROAD,
center: latLong
});
maps.push(map);
var marker = new google.maps.Marker({
position: latLong,
map: map,
title: jQuery(this).data('time')
});
google.maps.event.trigger(map, 'resize');
map.setCenter(latLong);
map._center = latLong;
jQuery(o).data('map', map);
});
proof of concept fiddle
谢谢,这似乎是在小提琴是工作太棒了!我不知道为什么它不在我的服务器上工作,但在这里:https://yt074.addons.la/tmp/track/list.php – Bing