bootstrap+echarts選項卡切換圖表

1、效果

 

2、代碼(自定義依賴包路徑)

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>圖表選項卡</title>
<link rel="stylesheet" href="bootstrap.min.css" />
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="bootstrap.min.js"></script>
<script type="text/javascript" src="echarts.min.js"></script>
</head>
<style type="text/css">
.myTable-container {
	width: 800px;
	height: 430px;
}
</style>
<body>
	<div class="container" style="padding-top: 5%; padding-left: 10%">
		<ul id="myTab" class="nav nav-tabs">
			<li class="active"><a href="#tab1" data-toggle="tab">Tab1</a></li>
			<li><a href="#tab2" data-toggle="tab">Tab2</a></li>
			<li><a href="#tab3" data-toggle="tab">Tab3</a></li>
		</ul>

		<div id="myTabContent" class="tab-content">
			<div class="tab-pane  active" id="tab1">
				<div id="tab1-container" class="myTable-container"></div>
			</div>
			<div class="tab-pane " id="tab2">
				<div id="tab2-container" class="myTable-container"></div>
			</div>
			<div class="tab-pane " id="tab3">
				<div id="tab3-container" class="myTable-container"></div>
			</div>
		</div>
	</div>
	<script>
		var $tab1 = document.getElementById('tab1-container');
		var $tab2 = document.getElementById('tab2-container');
		var $tab3 = document.getElementById('tab3-container');

		/* 折線圖 */
		var tab1Option = {
			xAxis : {
				type : 'category',
				data : [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]
			},
			yAxis : {
				type : 'value'
			},
			series : [ {
				data : [ 820, 932, 901, 934, 1290, 1330, 1320 ],
				type : 'line'
			} ]
		};
		
		/* 餅圖 */
		var tab2Option = {
			title : {
				text : '某站點用戶訪問來源',
				subtext : '純屬虛構',
				x : 'center'
			},
			tooltip : {
				trigger : 'item',
				formatter : "{a} <br/>{b} : {c} ({d}%)"
			},
			legend : {
				orient : 'vertical',
				left : 'left',
				data : [ '直接訪問', '郵件營銷', '聯盟廣告', '視頻廣告', '搜索引擎' ]
			},
			series : [ {
				name : '訪問來源',
				type : 'pie',
				radius : '55%',
				center : [ '50%', '60%' ],
				data : [ {
					value : 335,
					name : '直接訪問'
				}, {
					value : 310,
					name : '郵件營銷'
				}, {
					value : 234,
					name : '聯盟廣告'
				}, {
					value : 135,
					name : '視頻廣告'
				}, {
					value : 1548,
					name : '搜索引擎'
				} ],
				itemStyle : {
					emphasis : {
						shadowBlur : 10,
						shadowOffsetX : 0,
						shadowColor : 'rgba(0, 0, 0, 0.5)'
					}
				}
			} ]
		};
		
		/* 柱圖  */
		var tab3Option = {
			xAxis : {
				type : 'category',
				data : [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ]
			},
			yAxis : {
				type : 'value'
			},
			series : [ {
				data : [ 120, 200, 150, 80, 70, 110, 130 ],
				type : 'bar'
			} ]
		};

		/* 初始化tab1的 */
		var tab1Table = echarts.init($tab1);
		tab1Table.setOption(tab1Option);

		/* shown.bs.tab爲tab選項卡高亮 */
		$('a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
			 /* 獲取已激活的標籤頁的名稱 */
			/* hash 屬性是一個可讀可寫的字符串,該字符串是 URL 從 # 號開始的部分 */
			var activeTab = $(e.target)[0].hash;
			/* 當相應的標籤被點擊時,進行對應的圖表渲染 */
			if (activeTab == "#tab2") {
				/* 釋放圖表實例,使實例不可用,不加上這個,會報錯: */
				/* there is a chart instance     already initialized on the dom */
				echarts.dispose($tab2);
				var tab2Table = echarts.init($tab2);
				tab2Table.setOption(tab2Option);
			} else if (activeTab == "#tab3") {
				echarts.dispose($tab3);
				var tab3Table = echarts.init($tab3);
				tab3Table.setOption(tab3Option);
			}
		});
	</script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章