찾다
웹 프론트엔드부트스트랩 튜토리얼부트스트랩 탭에서 탭 전환 시 차트 표시 문제에 대한 해결 방법에 대해 간략히 설명합니다.

이 글에서는 Bootstrap 개발 중 탭 전환 차트 표시 문제를 해결하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

부트스트랩 탭에서 탭 전환 시 차트 표시 문제에 대한 해결 방법에 대해 간략히 설명합니다.

반응형 페이지를 만들 때 더 큰 크기의 장치에 대한 인터페이스 호환성을 고려해야 하는 경우가 많습니다. 일반적으로 인터페이스 요소가 다른 장치에 따라 동적으로 조정될 수 있도록 픽셀을 프로그래밍할 수 없지만 여전히 그렇지 않은 경우도 있습니다. 탭 탭의 첫 번째 페이지는 정상적으로 표시되지만, 다른 페이지로 전환할 때 표시 내용이 동적으로 조정되지 않는 등의 문제가 발생했습니다. 이 에세이에서는 탭 탭 전환 시 차트 표시 문제를 해결하는 방법과 차트 컨트롤은 창의 동적 변경을 실현할 수 있습니다. [관련 권장 사항: "부트스트랩 튜토리얼"]

1. 기존 차트 처리

예를 들어 아래 인터페이스에는 아래와 같이 두 개의 탭 탭이 있고 첫 번째 탭은 정상적으로 표시됩니다.

인터페이스 코드의 일부는 다음과 같습니다

<div class="portlet-body">
    <div class="tab-char" id="lineContainer1" style="height:300px;max-width:500px;"></div>
</div>

아이폰 기반으로 시뮬레이션된 장치의 크기를 보면 이미지의 크기가 효과적으로 조정되지 않고 올바른 방식으로 표시될 수 없다는 것을 알 수 있습니다. 탭 탭 사이에서 두 번째 탭의 차트 크기가 올바르게 조정되지 않습니다.

그런 다음 탭을 전환할 때 올바른 효과를 얻으려면 처리를 위해 탭 전환 이벤트를 추적해야 합니다.

인터넷으로 해결 방법을 찾아봤는데, "부트스트랩 탭(Tab) 플러그인 전환 시 차트가 표시되지 않는 문제 해결"이라는 에세이도 아주 좋습니다.

그러나 나는 그가 언급한 몇 가지 핵심 사항을 실제로 달성했지만 더 단순화된 몇 가지 병합과 변형을 만들었습니다.

1. Bootstrap은 반응형 레이아웃을 구현합니다.
2. Highcharts는 적응형을 구현합니다.
3. 탭 전환 및 확대/축소가 정상적으로 표시됩니다

여기에서는 HighChart 차트 컨트롤을 사용하고 있는데 원리는 동일합니다. 차트 모음을 순회해야 하지만 순회 처리는 보다 편리한 JQuery 문서 검색 방법을 사용할 수 있습니다.

2. 탭 전환 시 차트 표시 문제 해결

예를 들어 제가 작성한 차트 선언과 차트 데이터를 동적으로 가져오는 코드는 다음과 같습니다.

//初始化对象
    $(function () {
        var chart1 = new Highcharts.Chart({
            chart: {
                renderTo: "container1",
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false,
            },
            title: {
                text: &#39;集团分子公司人员组成&#39;
            },
            tooltip: {
                pointFormat: &#39;{series.name}: <b>{point.y}</b>&#39;
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: &#39;pointer&#39;,
                    dataLabels: {
                        enabled: true,
                        format: &#39;<b>{point.name}</b>: {point.percentage:.1f} %&#39;,
                        style: {
                            color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || &#39;black&#39;
                        }

                    },
                    //showInLegend: true
                }
            },
            series: [{
                type: &#39;pie&#39;,
                name: &#39;人员数量&#39;,
                data: []
            }]
        });

        //通过Ajax获取图表1数据
        $.ajaxSettings.async = false;
        var data1 = [];
        $.getJSON("/User/GetCompanyUserCountJson", function (dict) {                
            for (var key in dict) {
                if (dict.hasOwnProperty(key)) {
                    data1.push([key, dict[key]]);
                }
            };
            chart1.series[0].setData(data1);
        });

이 부분은 참고용으로 이해하시면 됩니다. 실제로 작동하는 코드는 아닙니다.

실제로 작동하는 것은 아래와 같이 Boosttrap의 탭 변경 이벤트를 사용하여 이를 처리한다는 것입니다.

//TAB页面变化的时候,调整图表宽度
        $(&#39;.grid_tab&#39;).on(&#39;shown.bs.tab&#39;, function () {
            var target = $(this).attr(&#39;href&#39;);
            var controls = $(target).find(&#39;.tab-char&#39;);
            for(var i=0;i<controls.length; i++)
            {
                $(controls[i]).highcharts().reflow();
            }            
        });

        //窗口大小变化的时候,调整图表宽度
        $(window).resize(function () {
            var controls = $(document).find(&#39;div.tab-char&#39;);
            for (var i = 0; i < controls.length; i++) {
                $(controls[i]).highcharts().reflow();
            }
        });

위의 JS는 JQuery를 사용하여 해당 하이차트 개체를 동적으로 순회한 다음 .reflow() 함수를 호출하여 업데이트합니다.

아래 차트의 탭 탭 페이지에 있는 HTML 코드를 참조하세요. class="tab-pane"과 class="tab-char"라는 두 개의 p 레이어가 JQuery를 사용하여 동적으로 표시되는 차트 컨트롤입니다. 키를 찾아 처리합니다.

<div class="tab-pane fade active in" id="tab_2_1">
                <div class="row">
                    <div class="col-md-6 col-sm-6">
                        <div class="portlet light ">
                            <div class="portlet-title">
                                <div class="caption">
                                    <i class="icon-bar-chart font-green-sharp hide"></i>
                                    <span class="caption-subject font-green-sharp bold uppercase">图表1</span>
                                </div>
                                <div class="actions">
                                    <div class="btn-group btn-group-devided" data-toggle="buttons">
                                        <label class="btn btn-transparent purple btn-circle btn-sm active">
                                        <input type="radio" name="options" class="toggle" id="option1">更多...</label>
                                    </div>
                                </div>
                            </div>
                            <div class="portlet-body">
                                <div class="tab-char" id="container1" style="height: 300px;max-width:500px"></div>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-6 col-sm-6">
                        <div class="portlet light ">
                            <div class="portlet-title">
                                <div class="caption">
                                    <i class="icon-bar-chart font-green-sharp hide"></i>
                                    <span class="caption-subject font-green-sharp bold uppercase">3D图表2</span>
                                </div>
                                <div class="actions">
                                    <div class="btn-group btn-group-devided" data-toggle="buttons">
                                        <label class="btn btn-transparent purple btn-circle btn-sm active">
                                            <input type="radio" name="options" class="toggle" id="option1">更多...
                                        </label>
                                    </div>
                                </div>
                            </div>
                            <div class="portlet-body">                                
                                <div class="tab-char" id="container2" style="height: 300px;max-width:500px"></div>
                            </div>
                        </div>
                    </div>

jS를 처리할 때 제대로 실행되고 있는지 확인할 수 없는 경우에는 아래와 같이 결과를 추적하여 모든 단계를 추적할 수 있습니다.

또는 창이 바뀔 때 캡처하는 개체를 볼 수도 있습니다.

객체를 얻은 후 해당 컨트롤로 변환한 다음 해당 인터페이스를 호출하여 업데이트합니다.

$(controls[i]).highcharts().reflow();

위는 우리의 구현 아이디어와 추적 처리 방법입니다. 마지막으로 위 그림은 문제에 대한 해결책을 보여줍니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !

위 내용은 부트스트랩 탭에서 탭 전환 시 차트 표시 문제에 대한 해결 방법에 대해 간략히 설명합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 博客园에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
React의 부트 스트랩 : 장점 및 모범 사례React의 부트 스트랩 : 장점 및 모범 사례Apr 16, 2025 am 12:17 AM

부트 스트랩을 React 프로젝트에 통합 할 때의 장점은 1) 빠른 개발, 2) 일관성 및 유지 가능성 및 3) 반응 형 디자인이 포함됩니다. CSS 파일을 직접 소개하거나 React-Bootstrap 라이브러리를 사용하면 React 프로젝트에서 Bootstrap의 구성 요소와 스타일을 효율적으로 사용할 수 있습니다.

부트 스트랩 : 웹 프레임 워크에 대한 빠른 안내서부트 스트랩 : 웹 프레임 워크에 대한 빠른 안내서Apr 15, 2025 am 12:10 AM

Bootstrap은 Twitter에서 개발 한 프레임 워크로, 반응 형 모바일 우선 웹 사이트 및 응용 프로그램을 신속하게 구축 할 수 있습니다. 1. 사용 편의성과 풍부한 구성 요소 라이브러리는 개발을 더욱 빠르게 만듭니다. 2. 거대한 커뮤니티는 지원과 솔루션을 제공합니다. 3. 클래스 이름을 소개하고 사용하여 반응 형 그리드 생성과 같은 CDN을 통해 스타일을 제어합니다. 4. 사용자 정의 가능한 스타일 및 확장 구성 요소. 5. 장점에는 빠른 개발과 반응 형 디자인이 포함되며 단점은 스타일 일관성과 학습 곡선입니다.

부트 스트랩 분해 : 그것이 무엇인지, 왜 중요한지부트 스트랩 분해 : 그것이 무엇인지, 왜 중요한지Apr 14, 2025 am 12:05 AM

BootstrapisAfree, Open-SourcecsSframework that atresponsiveandmobile-firstwebsitedevelopment.itofferspre-styledcomponentsandagridsystem, streamliningthecreations of hetsingallyfleasing 및 functionalwebdesigns를 간소화합니다.

부트 스트랩 : 웹 디자인을보다 쉽게 ​​만듭니다부트 스트랩 : 웹 디자인을보다 쉽게 ​​만듭니다Apr 13, 2025 am 12:10 AM

웹 디자인이 더 쉬운 것은 부트 스트랩입니다. 사전 설정 구성 요소, 반응 형 디자인 및 풍부한 커뮤니티 지원. 1) 사전 설정 구성 요소 라이브러리 및 스타일을 사용하면 개발자가 복잡한 CSS 코드를 쓰지 않도록 할 수 있습니다. 2) 내장 그리드 시스템은 반응 형 레이아웃 생성을 단순화합니다. 3) 커뮤니티 지원은 풍부한 자원과 솔루션을 제공합니다.

부트 스트랩의 영향 : 웹 개발 가속화부트 스트랩의 영향 : 웹 개발 가속화Apr 12, 2025 am 12:05 AM

Bootstrap은 웹 개발을 가속화하고 사전 정의 된 스타일 및 구성 요소를 제공함으로써 신속하게 반응 형 웹 사이트를 구축 할 수 있습니다. 1) 프로젝트에서 며칠 내에 기본 레이아웃을 완료하는 등 개발 시간이 단축됩니다. 2) SASS 변수와 믹스 인을 통해 부트 스트랩을 통해 맞춤형 스타일은 특정 요구를 충족시킬 수 있습니다. 3) CDN 버전을 사용하면 성능을 최적화하고 로딩 속도를 향상시킬 수 있습니다.

부트 스트랩 이해 : 핵심 개념 및 기능부트 스트랩 이해 : 핵심 개념 및 기능Apr 11, 2025 am 12:01 AM

Bootstrap은 오픈 소스 프론트 엔드 프레임 워크이며 주요 기능은 개발자가 반응 형 웹 사이트를 신속하게 구축하도록 돕는 것입니다. 1) 복잡한 UI 효과의 구현을 용이하게하기 위해 사전 정의 된 CSS 클래스 및 JavaScript 플러그인을 제공합니다. 2) 부트 스트랩의 작동 원리는 CSS 및 JavaScript 구성 요소에 의존하여 미디어 쿼리를 통해 반응 형 디자인을 실현합니다. 3) 사용의 예로는 버튼 작성과 같은 기본 사용 및 사용자 정의 스타일과 같은 고급 사용법이 포함됩니다. 4) 일반적인 오류에는 클래스 이름의 철자가 포함됩니다. 브라우저 개발자 도구를 사용하여 디버깅하는 것이 좋습니다. 5) 성능 최적화는 맞춤형 빌드 도구를 통해 달성 할 수 있으며 모범 사례에는 Semantic HTML 및 부트 스트랩 사용 사전 정의가 포함됩니다.

부트 스트랩 딥 다이브 : 반응 형 디자인 및 고급 레이아웃 기술부트 스트랩 딥 다이브 : 반응 형 디자인 및 고급 레이아웃 기술Apr 10, 2025 am 09:35 AM

Bootstrap은 그리드 시스템 및 미디어 쿼리를 통한 반응 형 디자인을 구현하여 웹 사이트를 다른 장치에 적용합니다. 1. 사전 정의 된 클래스 (예 : col-SM-6)를 사용하여 열 너비를 정의하십시오. 2. 그리드 시스템은 12 개의 열을 기반으로하며 합계가 12를 초과하지 않습니다. 3. SM, MD, LG와 같은 중단 점 (예 : SM, MD, LG)을 사용하여 다른 화면 크기로 레이아웃을 정의합니다.

부트 스트랩 인터뷰 질문 : 꿈의 프론트 엔드 직업을 착륙 시키십시오부트 스트랩 인터뷰 질문 : 꿈의 프론트 엔드 직업을 착륙 시키십시오Apr 09, 2025 am 12:14 AM

Bootstrap은 반응 형 웹 사이트 및 응용 프로그램의 신속한 개발을위한 오픈 소스 프론트 엔드 프레임 워크입니다. 1. 반응 형 설계, 일관된 UI 구성 요소 및 빠른 개발의 장점을 제공합니다. 2. 그리드 시스템은 12 열 구조를 기반으로 Flexbox 레이아웃을 사용하며 .Container, .row 및 .Col-SM-6과 같은 클래스를 통해 구현됩니다. 3. SASS 변수를 수정하거나 CSS를 덮어 쓰면 사용자 정의 스타일을 구현할 수 있습니다. 4. 일반적으로 사용되는 JavaScript 구성 요소에는 모달 상자, 회전식 다이어그램 및 접이식이 포함됩니다. 5. 필요한 구성 요소 만로드하고 CDN을 사용하고 병합 파일을 압축하여 최적화 성능을 달성 할 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경