我有一个带有infoBoxes的Google地图。 infoBoxes具有在显示后改变infoBox大小的功能。
当内容大于最初显示的内容时,这会导致infoBox流出地图。有没有办法调用infoBox panBox功能,这样infoBox会再次在地图中重新设置,就像打开它一样?
简而言之:如何在更改尺寸后再次使infoBox适合?
参见示例: Fiddle
点击信息框以查看问题
我的代码示例,因为我不允许在没有代码的情况下显示小提琴:)
function initialize() {
var loc, map, marker, infobox;
loc = new google.maps.LatLng(-33.890542, 151.274856);
map = new google.maps.Map(document.getElementById("map-canvas"), {
zoom: 12,
center: loc,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
marker = new google.maps.Marker({
map: map,
position: loc,
visible: true
});
var infobox = new InfoBox({
content: document.getElementById("infobox"),
alignBottom: true,
pixelOffset: new google.maps.Size(0, 0)
});
google.maps.event.addListener(marker, 'click', function() {
infobox.open(map, this);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
jQuery('document').ready(function(){
jQuery('.content').on('click', function(){
jQuery('.content').hide();
jQuery('.hidden').show();
jQuery('#infobox').height(jQuery('.hidden').height());
});
});
答案 0 :(得分:0)
您可以尝试添加此map.panTo(loc);
google.maps.event.addListener(marker, 'click', function() {
infobox.open(map, this);
map.panTo(loc);
});
答案 1 :(得分:0)
您可以使用infobox.panBox_();
如果您想知道它是如何工作的,请从插件中打开infobox.js。