首頁  >  文章  >  web前端  >  為什麼我的傳單地圖放置在資料切換標籤內時不顯示?

為什麼我的傳單地圖放置在資料切換標籤內時不顯示?

DDD
DDD原創
2024-11-15 02:48:02988瀏覽

Why does my Leaflet map not display when placed inside a data-toggle tab?

資料切換標籤中的Leaflet 地圖問題

使用標籤顯示內容時,可能會遇到Leaflet 地圖的問題放置在資料切換選項卡中時無法下載。

原因

由於 Leaflet 初始化地圖容器大小的方式而出現此問題。地圖初始化時,Leaflet 會讀取容器大小,如果容器被隱藏或其尺寸發生更改,該大小稍後會變得無效。

解決方案

解決此問題問題,您需要在顯示選項卡後手動更新容器大小。這可以使用map.invalidateSize()方法來實作。

實作

在您的JavaScript程式碼中,為選項卡按鈕的點擊事件新增監聽器以觸發地圖update:

$(document).ready(function () {
    var map = new L.Map('carteBenef');
    // ... (rest of your code)
    
    // Add listener to tab button click
    $('#carteTabButton').on('click', function () {
        map.invalidateSize();
    });
});

或者,您可以使用特定於框架的方法根據選項卡的可見性觸發地圖更新。例如,在 Bootstrap 中,您可以使用 shown.bs.tab 事件:

$('#carteTab').on('shown.bs.tab', function () {
    map.invalidateSize();
});

透過在標籤顯示後更新地圖容器大小,您可以確保 Leaflet 地圖在標籤上。

以上是為什麼我的傳單地圖放置在資料切換標籤內時不顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn