您需要保存每張地圖的中心,然後在激活新手風琴後設置它(並且該地圖具有大小,當地圖/手風琴被隱藏時,其計算大小爲零,因此標記以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