我的InfoWindows显示不正确有问题 - 虽然它不应该显示滚动条(但只是第一次)!
在我的页面上,我有很多折线路线,我为每条路线添加了一个标记/ InfoWindow。添加了很多标记(在Ajax调用中循环)。
这是我对InfoWindow的定义(循环前的单个实例):
// Define an info window
var infowindow = new google.maps.InfoWindow( { content: "" } );
这是在我的循环中我添加标记:
// Set a marker on the last known position
var marker = new google.maps.Marker({
position: lastLatLng,
title: "My text",
map: map,
icon: iconCar
});
// Click on a marker to open an info window
google.maps.event.addListener(marker,"click",function() {
infowindow.open(map,this);
infowindow.setContent(this.title);
});
当我第一次打开地图时(在每个新浏览器实例中)我注意到InfoWindow的标记/显示有一个滚动条 - 我没有把它放在那里也不应该在那里作为文本没过那么久。
错误(使用滚动条):
下次(以及所有以下内容)我点击它,它会在没有滚动条的情况下正确显示。
更正(不使用滚动条):
我没有为Google地图条目指定任何CSS,即便如此,它应该每次都显示错误,而不仅仅是第一次。
我已尝试过这个问题的所有技巧Google Maps API v3: InfoWindow not sizing correctly,但似乎没有解决我的问题。
请参阅显示我的问题的Fiddle demo。如果我关闭所有(Chrome)浏览器,转到小提琴并单击路线(第一次点击),我每次都可以重现错误。然后它会第一次显示滚动条,但只是第一次显示。
答案 0 :(得分:7)
将以下内容添加到CSS中:
div.gm-style-iw{
overflow:hidden!important;
}
您正在看滚动条,因为带滚动条的包含元素的默认设置为overflow:auto
且内容超出了容器的高度。
您需要使用!important
运算符,因为地图样式是内联定义的,而替代方法是使用Javascript进行编辑,但这可能是过度的。
<强> More on !important
from MDN 强>
当样式声明使用!important规则时,这个 声明覆盖CSS中的任何其他声明,无论在何处 它在声明列表中。虽然,!重要无关 具有特异性。使用!important是不好的做法,因为它使 你努力调试,因为你打破了你的自然级联 样式表。