2012-08-09 64 views
2

我正在嘗試使用Leaflet創建一個小例子,並在我的web應用程序中使用它,但是我遇到了一些困難。小冊子:動態div容器

我已經從他們的網頁,其中有一個靜態地圖股利和覆蓋幾個對象(,circlepolygon)的quick start guide做出了獨立的傳單例子。 但是在我的應用程序中,地圖div容器使用jquery進行動態定位和調整大小,這是一個相當複雜的應用程序,所以我不能在這裏發佈整個代碼。

問題是,經過正確的div處理後,地圖在div(無論它在哪裏)正確繪製,但是在疊加層中,我只能看到。 circlepolygon不可見。

var map = L.map(this.$el.attr('id')).setView([51.505, -0.09], 13); 
    L.tileLayer('http://{s}.tile.cloudmade.com/<APIKEY>/997/256/{z}/{x}/{y}.png', { 
     attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>', 
     maxZoom: 18 
    }).addTo(map); 

    var circle = L.circle([51.508, -0.11], 500, { 
     color: 'red', 
     fillColor: '#f03', 
     fillOpacity: 0.5 
    }).addTo(map); 

    var polygon = L.polygon([ 
     [51.509, -0.08], 
     [51.503, -0.06], 
     [51.51, -0.047] 
    ]).addTo(map); 

    var marker = L.marker([51.5, -0.09]).addTo(map); 
    marker.bindPopup("<b>Hello world!</b><br>I am a popup."); 
    circle.bindPopup("<b>Hello world!</b><br>I am a popup.").openPopup(); 

我相信沒有什麼錯在我創建的地圖和對象,我甚至在div的整個調整大小後調用map.invalidateSize()的方式。奇怪的部分是彈出窗口顯示在正確的位置,但在它後面沒有圓圈。

難道問題在於我調整和定位div容器的方式。是否有任何具體的CSS屬性,我應該在div容器中使用?

感謝您的幫助。

回答

1

在這個問題上睡覺之後,我想了一個JSFiddle例子來重現這個問題。 但是,無論我多麼努力地嘗試,我都無法在更簡單的獨立示例中複製問題,所以問題必須在我的應用程序中發生一些衝突。

每個症狀都指向CSS問題,但是我的CSS範圍很廣。 所以我的最後一個理論是,它必須是我使用的某個庫中的衝突。

原來是正確的。問題是NVD3

CSS樣式表中的衝突