第一种方法
function autohover() {
var count = 0;
var timeTicket = null;
var dataLength = 34; //此处设置的是需要轮播的次数
timeTicket && clearInterval(timeTicket);
timeTicket = setInterval(function () {
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0, //serieIndex的索引值 可以触发多个
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: (count) % dataLength
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: (count) % dataLength
});
count++;
}, time);
myChart.on('mouseover', function (params) {
clearInterval(timeTicket);
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: params.dataIndex
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: params.dataIndex,
});
});
myChart.on('mouseout', function (params) {
timeTicket && clearInterval(timeTicket);
timeTicket = setInterval(function () {
myChart.dispatchAction({
type: 'downplay',
seriesIndex: 0,
});
myChart.dispatchAction({
type: 'highlight',
seriesIndex: 0,
dataIndex: (count) % dataLength
});
myChart.dispatchAction({
type: 'showTip',
seriesIndex: 0,
dataIndex: (count) % dataLength
});
count++;
}, 1000);
});
}
第二种方法 引入自动轮播插件echarts-tooltip-cyclic-display
github:https://github.com/chengwubin/echarts-tooltip-cyclic-display
使用方法与第三种基本一致
第三种方法 引入自动轮播插件echarts-auto-tooltip
github:https://github.com/liuyishiforever/echarts-auto-tooltip
## 使用方法
1. 引入ehcrts-auto-tooltips
```html
<script type="text/javascript" src="js/echarts-auto-tooltip.js"></script>
```
2. 在初始化 echarts 实例并通过 setOption 方法生成图表的代码下添加如下代码
```js
// 使用指定的配置项和数据显示图表
myChart.setOption(option);
tools.loopShowTooltip(myChart, option, {loopSeries: true}); // 使用本插件
```
## 参数说明:
mychart: 初始化echarts的实例
option: 指定图表的配置项和数据
loopOption: 本插件的配置
| 属性 | 说明 | 默认值 |
| ----------- | ------------------------------------------------------------------------- | ------------------- |
| interval | 轮播时间间隔,单位毫秒 | 默认为2000 |
| loopSeries | true表示循环所有series的tooltip,false则显示指定seriesIndex的tooltip | boolean类型,默认为false |
| seriesIndex | 指定某个系列(option中的series索引)循环显示tooltip,当loopSeries为true时,从seriesIndex系列开始执行. | 默认为0|
实例代码
```js
function drawSensitiveFile() {
let myChart = echarts.init(document.getElementById('sensitive-file'));
let option = {
title: {
text: '敏感文件分布分析',
x: '40',
textStyle: {
color: '#fff'
}
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
legend: {
type: 'scroll',
orient: 'vertical',
right: 10,
top: 20,
bottom: 20,
data: ['人事类', '研发类', '营销类', '客户信息类'],
textStyle: {
color: '#fff'
}
},
series: [
{
name: '敏感文件分布数量',
type: 'pie',
radius: '55%',
center: ['50%', '60%'],
data: [
{value: 335, name: '人事类'},
{value: 310, name: '研发类'},
{value: 234, name: '营销类'},
{value: 1548, name: '客户信息类'}
],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
labelLine: {
normal: {
//length:5, // 改变标示线的长度
lineStyle: {
color: "#fff" // 改变标示线的颜色
}
},
},
label: {
normal: {
textStyle: {
color: '#fff' // 改变标示文字的颜色
}
}
},
}
]
};
myChart.setOption(option);
tools.loopShowTooltip(myChart, option, {loopSeries: true});
}
```