7

我的InfoWindows顯示有問題 - 它顯示的滾動條雖然不應該(但只是第一次)!谷歌地圖InfoWindow顯示不需要的滾動條(但只有一次)

在我的頁面上,我有很多折線路線,並且我爲每條路線添加了一個標記/ InfoWindow。添加了很多標記(在Ajax調用中循環)。

這是我的信息窗口的定義(單實例循環前):

// 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的標記/顯示有一個滾動條 - 我沒有把它放在那裏,也不應該在那裏,因爲文本不長。

錯誤(帶滾動條):

InfoWindow with scrollbar - this is wrong

下一次(和所有以下),我點擊它,它正確地顯示出來,而不滾動條。

正確(沒有滾動條):

InfoWindow without scrollbar - this is correct

我沒有對谷歌地圖的條目,甚至因此應只顯示它第一次每一次錯誤的,不指定任何CSS 。

我試過這個問題的所有技巧,Google Maps API v3: InfoWindow not sizing correctly,但似乎沒有解決我的問題。

請參閱此Fiddle demo它顯示我的問題。如果我關閉所有(Chrome)瀏覽器,則每次都可以重現該錯誤,請轉到小提琴並單擊一條路線(作爲第一次單擊)。然後它會第一次顯示滾動條,但只有第一次。

+1

這是滾動條。尤其是當infowindow首次打開並且未完全展開時。 –

+0

此問題也出現在Google的InfoWindow示例窗口中。我發現在第一次打開時(不是每次都有)對高度的計算錯誤,也許你可以將此作爲一個問題報告。 – alalp

回答

7

以下內容添加到您的CSS:

div.gm-style-iw{ 
    overflow:hidden!important; 
} 

你看到滾動條,因爲默認設置使用滾動條包含的元素是overflow:auto和上述含量超過容器的高度。

您需要使用!important運算符,因爲映射樣式是內聯定義的,替代方法是使用Javascript進行編輯,但這可能是矯枉過正。

More on !important from MDN

當!重要的規則是在樣式聲明中使用,這 聲明覆蓋在CSS所做的任何其他聲明,無論 它在聲明列表。雖然,!重要的是與特異性無關 。使用!重要的是不好的做法,因爲它會使 難以調試,因爲您打破了 樣式表中的自然級聯。