데이터 토글 탭 안에 전단지 맵을 배치하면 왜 표시되지 않습니까?

DDD
풀어 주다: 2024-11-15 02:48:02
원래의
986명이 탐색했습니다.

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

Problems with Leaflet Map in Data-Toggle Tab

When using tabs to display content, it is possible to encounter issues where a Leaflet map fails to download when placed within a data-toggle tab.

Cause

The issue arises due to the way Leaflet initializes the map container size. When the map is initialized, Leaflet reads the container size, which can later become invalid if the container is hidden or its dimensions are changed.

Solution

To resolve this issue, you need to manually update the container size after the tab is displayed. This can be achieved using the map.invalidateSize() method.

Implementation

In your JavaScript code, add a listener to the tab button's click event to trigger the map 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();
    });
});
로그인 후 복사

Alternatively, you can use framework-specific methods to trigger the map update based on the tab's visibility. For instance, in Bootstrap you can use the shown.bs.tab event:

$('#carteTab').on('shown.bs.tab', function () {
    map.invalidateSize();
});
로그인 후 복사

By updating the map container size after the tab is displayed, you can ensure that the Leaflet map downloads and renders correctly within the tab.

위 내용은 데이터 토글 탭 안에 전단지 맵을 배치하면 왜 표시되지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿