我有一张地图,一张zIndex = 6的标记,当我点击它时会出现一个信息框(zIndex:5和pane:“overlayImage”)。因此标记和工具提示在同一个窗格中,因此它取决于顶部的zIndex和底部的zIndex。我遇到的问题是,如果标记有(draggable:true),则zIndex比较有效。 (标记位于顶部,因为6> 5),但如果我删除了draggable属性,即使zindex高于信息框zIndex,标记也将位于信息框下。
有人可以解释一下为什么会这样吗?代码:
function initialize() {
var secheltLoc = new google.maps.LatLng(49.47216, -123.76307);
var myMapOptions = {
zoom: 15
,center: secheltLoc
,mapTypeId: google.maps.MapTypeId.ROADMAP
};
var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
var marker = new google.maps.Marker({
map: theMap,
draggable: true,
position: new google.maps.LatLng(49.47216, -123.76307),
zIndex: 6
});
var boxText = document.createElement("div");
boxText.style.cssText = "zindex: 3;border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px;";
boxText.innerHTML = "City Hall, Sechelt<br>British Columbia<br>Canada";
var myOptions = {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(-10, -20)
,zIndex: 5
,boxStyle: {
background: "url('tipbox.gif') no-repeat"
,opacity: 0.75
,width: "280px"
}
,closeBoxMargin: "10px 2px 2px 2px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "overlayImage"
,enableEventPropagation: false
};
var ib = new InfoBox(myOptions);
google.maps.event.addListener(marker, "mouseover", function (e) {
ib.open(theMap, this);
});
}
答案 0 :(得分:4)
如果将标记设置为可拖动,则不会对其进行优化(不在画布中渲染)。
如果将优化设置为false,则效果相同(不将标记设置为可拖动)。