tab 전환 echarts가 제대로 표시되지 않음
6695 단어 웹 페이지 전단 백엔드
<ul id="myTab" class="nav nav-tabs">
<li class="active">
<a href="#chart1" data-toggle="tab">tab1a>
li>
<li>
<a href="#chart2" data-toggle="tab" onclick="javascript:chartresize()">tab2a>
li>
<div class="tab-content">
<div class="tab-pane fade in active" id="chart1" style="width=100%;height=100%">div>
<div class="tab-pane fade" id="chart2">div>
div>
ul>
chartresize() 메서드는 다음과 같습니다.
function chartresize(){
console.log("chartresize");
var temp = new initchart();
temp.resize();
}
echarts를 초기화하는 방법은 다음과 같습니다.
var initchart = function(){
var chart2 = echarts.init(document.getElementById('chart2'));
var chart2_option={
series: [
{
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data:[
{value:10, name: 'pie1'},
{value:20, name: 'pie2'},
{value:10, name: 'pie3'},
]
}
]
}
chart2.setOption(chart2_option);
$(function(){
window.onresize = function(){
chart2.resize();
}
})
this.resize = function size(){
var chart2div=document.getElementById('chart2');
var tabcontent = document.getElementById('tab-content');
width=tabcontent.offsetWidth;
height=tabcontent.offsetHeight;
chart2div.style.width=width+'px';
chart2div.style.height=height+'px';
chart2.resize(width,height);
}
}
이렇게 하면 두 번째tab을 눌렀을 때마다chart2를 다시 불러와서 chart가 너무 작은 문제가 생기지 않습니다.3. tab 전환을 설정할 때 불러오는 시간 코드는 다음과 같다.
$("a[data-toogle='tab']").on("shown.bs.tab",function(e){
var activeTab=$(e.target)[0].hash;
if(activeTab == "#tab1"){
window.onresize();
}
if(activeTab == "#tab2"){
window.onresize();
}
}
echarts의 초기화는 정상적인 방식과 같지만,tab-content의 echarts의 높이를 100%로 설정하는 것을 기억하십시오.