2012-03-27 15 views
3

這是我爲我的地圖DIV + CSS:滾輪縮放功能上的OpenLayers停止與格組的工作,以溢出:汽車

#map { 
       position: fixed; 
       top: 9.48em; 
       bottom: 2.2em; 

      } 

我的OpenLayers映射在這個div渲染。一切正常。但只要我添加一個

overflow:auto; 

屬性在上面的CSS中,使用我的地圖上的滾輪縮放獲取禁用。我需要添加此屬性,因爲現在我需要顯示一些表來代替地圖。

我懷疑當我添加滾動條時,滾輪事件沒有到達OpenLayers。

解決這個問題的任何方法通過修復CSS或一些OpenLayers代碼?

我知道我可以通過在JS中添加一些邏輯來動態改變css屬性,這取決於正在加載的頁面,但除非絕對必要,否則我不想走這條路線並找到乾淨的解決方案。

謝謝。

回答

3

好的問題,這是由設計:如果你在一個可滾動的div,OpenLayers將不會做任何事情(它會檢查溢出風格),否則,它將滾動地圖。

看看源的解釋:https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L149

溢出風格檢查是在這裏:https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Handler/MouseWheel.js#L124

+0

感謝針指向它!是的代碼說明了一切。因此,每次我渲染地圖時更改div屬性是解決此問題的唯一選擇? – Shaunak 2012-03-27 08:54:54