heighCharts 图表和表格数据联动

320 阅读1分钟

需求:鼠标悬浮在表格tr元素上对应的环形图选中并显示提示文字。

代码:

let chart_;
Highcharts.chart('container', {
	chart: {
		type: 'pie',
		options3d: {
			enabled: true,
			alpha: 50
		}
	},
	colors:["#0071dd","#33b1ff","#fd491a","#18f273","#eaff00","#4070ff","#f833ff","#ff4cfa","#9ccbe6","#95e6d8","#ff99cb","#fd491a","#ffeb0d","#69eef9","#26ffc9","#ff8c19","#ac59ff","#ff0d9a","#ff5533","#ace65c","#f1d848","#feccca","#ff8a73","#d5fa96","#ffc499","#ff8a73"],
	title: {
		floating:true,
		text: '圆心显示的标题'
	},
	plotOptions: {
		pie: {
			innerSize: 200,
			depth: 70,
			dataLabels: {
				enabled: false,
			},
		}
	},
	series: [{
		name: 'Delivered amount',
		data: [
			['Kiwi', 3],
			['Mixed nuts', 1],
			['Oranges', 6],
			['Apples', 8],
			['Pears', 4],
			['Clementines', 4],
			['Reddish (bag)', 1],
			['Grapes (bunch)', 1]
		]
	}]
}, function(c) { // 图表初始化完毕后的会掉函数
	// 环形图圆心
	var centerY = c.series[0].center[1],
		titleHeight = parseInt(c.title.styles.fontSize);
	// 动态设置标题位置
	c.setTitle({
		y:centerY + titleHeight/2
	});
	chart_=c;
});
$(function(){
	$('body').on('mouseover','tr',function(){ 
		let chartData=chart_.series[0].data;        
		for(let i in chartData){
			if($(this).find('.name').html()==chartData[i].name){
				chart_.series[0].data[i].select()
				chart_.tooltip.refresh(chart_.series[0].data[i]);
			}
		}
	})
	$('body').on('mouseout','table',function(){    
		chart_.tooltip.hide();
	})
})

示例:jshare.com.cn/public/P0Gs…