echarts实现tooltip轮播效果

第一种方法

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

```

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} 
{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}); } ```

 

你可能感兴趣的:(echarts)