echart中tooltip自动展示代码示例

 更新时间:2023年09月22日 09:48:50   作者:13pan  
这篇文章主要给大家介绍了关于echart中tooltip自动展示的相关资料,ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表,需要的朋友可以参考下

引入js文件

import {autoHover} from ‘./tooltip’

/**
 * echarts tooltip轮播
 * @param chart ECharts实例
 * @param chartOption echarts的配置信息
 * @param options object 选项
 * {
 *  interval    轮播时间间隔,单位毫秒,默认为3000
 *              true表示循环所有series的tooltip,false则显示指定seriesIndex的tooltip
 *  seriesIndex 默认为0,指定某个系列(option中的series索引)循环显示tooltip,
 *              当loopSeries为true时,从seriesIndex系列开始执行。
 * }
 * @returns {{clearLoop: clearLoop}|undefined}
 */
 export function autoHover(myChart, option, num, time) {
    var defaultData = { // 设置默认值
      time: 3000,
      num: 14
    };
    if (!time) {
      time = defaultData.time;
    }
    if (!num) {
      num = defaultData.num;
    }
    var count = 0;
    var timeTicket = 0;
    // 清除定时器
    function clearLoop() {
      if (timeTicket) {
        clearInterval(timeTicket);
        timeTicket = 0;
      }
      myChart.off('mousemove', stopAutoShow);
      myChart.getZr().off('mousemove', zRenderMouseMove);
      // myChart.getZr().off('globalout', zRenderGlobalOut);
    }
    // 关闭轮播
    function stopAutoShow() {
      if (timeTicket) {
        clearInterval(timeTicket);
        timeTicket = 0;
      }
    }
    function zRenderMouseMove(param) {
      if (param.event) {
        // 阻止canvas上的鼠标移动事件冒泡
        // param.event.cancelBubble = true;
      }
      stopAutoShow();
    }
    timeTicket && clearInterval(timeTicket);
    timeTicket = setInterval(function() {
      myChart.dispatchAction({
        type: 'downplay',
        seriesIndex: 0 // serieIndex的索引值   可以触发多个
      });
      myChart.dispatchAction({
        type: 'highlight',
        seriesIndex: 0,
        dataIndex: count
      });
      myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: count
      });
      count++;
      if (count >= num) {
        count = 0;
      }
    }, 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() {
      timeTicket && clearInterval(timeTicket);
      timeTicket = setInterval(function() {
        myChart.dispatchAction({
          type: 'downplay',
          seriesIndex: 0 // serieIndex的索引值   可以触发多个
        });
        myChart.dispatchAction({
          type: 'highlight',
          seriesIndex: 0,
          dataIndex: count
        });
        myChart.dispatchAction({
          type: 'showTip',
          seriesIndex: 0,
          dataIndex: count
        });
        count++;
        if (count >= 14) {
          count = 0;
        }
      }, 3000);
    });
    return {
      clearLoop: clearLoop
    };
  }

在echart里注册使用

 myChart.setOption(option, true);
      this.tootipTimer && this.tootipTimer.clearLoop(); // this.tootipTimer 在data里定义
      this.tootipTimer = 0;
      this.tootipTimer = autoHover(myChart, option, 8, 3000);

附:echart tooltip自定义 

ECharts 提供了 tooltip 的自定义功能,可以通过 formatter 函数来自定义 tooltip 的内容和样式。

下面是一个简单的示例:

option = {
  // ... 其他配置项
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      crossStyle: {
        color: '#999'
      }
    },
    formatter: function (params) {
      // 自定义 tooltip 的内容和样式
      return params[0].name + '<br/>' +
        params[0].seriesName + ' : ' + params[0].value + '<br/>' +
        params[1].seriesName + ' : ' + params[1].value + '<br/>' +
        params[2].seriesName + ' : ' + params[2].value + '<br/>' +
        params[3].seriesName + ' : ' + params[3].value + '<br/>'
    }
  },
  // ... 其他配置项
  series: [
    {
      name:'邮件营销',
      type:'bar',
      data:[120, 132, 101, 134, 90, 230, 210]
    },
    {
      name:'联盟广告',
      type:'bar',
      data:[220, 182, 191, 234, 290, 330, 310]
    },
    {
      name:'视频广告',
      type:'bar',
      data:[150, 232, 201, 154, 190, 330, 410]
    },
    {
      name:'直接访问',
      type:'bar',
      data:[320, 332, 301, 334, 390, 330, 320]
    }
  ]
};

在上面的示例中,通过 formatter 函数来自定义 tooltip 的内容和样式。在这个函数中,我们可以通过 params 参数获取到当前 tooltip 中所展示的数据,从而可以自定义 tooltip 的样式和展示内容。

需要注意的是,formatter 函数的返回值必须是一个字符串。在字符串中,可以使用 HTML 标签来控制 tooltip 的样式,比如使用 <br/> 来换行。

总结 

到此这篇关于echart中tooltip自动展示的文章就介绍到这了,更多相关echart tooltip自动展示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js图片轮播效果实现代码

    js图片轮播效果实现代码

    这篇文章主要介绍了js图片轮播效果实现代码,文章对每一步进行了详细阐述,标注注意事项,为顺利实现js图片轮播效果做好铺垫,对轮播效果感兴趣的朋友可以参考一下
    2015-11-11
  • js实现搜索栏效果

    js实现搜索栏效果

    这篇文章主要为大家详细介绍了js实现搜索栏效果,以及焦点问题的解决,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • JavaScript中停止执行setInterval和setTimeout事件的方法

    JavaScript中停止执行setInterval和setTimeout事件的方法

    这篇文章主要介绍了JavaScript中停止执行setInterval和setTimeout事件的方法,本文给出操作实例代码和语法介绍,需要的朋友可以参考下
    2015-05-05
  • javascript实现五星评价代码(源码下载)

    javascript实现五星评价代码(源码下载)

    大家在淘宝购物之后,都会对卖家的服务进行评论,那么五星评价代码是怎么实现的呢?下面小编给大家介绍基于Javascript实现五星评价代码,有需要的朋友可以参考下
    2015-08-08
  • JavaScript实现三级级联特效

    JavaScript实现三级级联特效

    这篇文章主要介绍了JavaScript实现三级级联特效,选择省会出现相应的县下拉框,同时市的下拉框改变,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 浅谈js函数的多种定义方法与区别

    浅谈js函数的多种定义方法与区别

    下面小编就为大家带来一篇浅谈js函数的多种定义方法与区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Bootstrap表单组件教程详解

    Bootstrap表单组件教程详解

    表单常见的元素主要包括:文本输入框、下拉选择框、单选框、复选框、文本域、按钮等。接下来通过本文给大家介绍Bootstrap表单组件教程,感兴趣的朋友一起学习吧
    2016-04-04
  • JavaScript实现星座查询功能 附详细代码

    JavaScript实现星座查询功能 附详细代码

    最近小编在做一个项目,其中涉及到一个模块关于星座查询功能,即在文本框中输入一个生日值,点击按钮可以得到对应的星座,怎么实现这个需求呢?下面小编通过示例代码给大家介绍下,需要的朋友参考下吧
    2021-11-11
  • JavaScript中document.forms[0]与getElementByName区别

    JavaScript中document.forms[0]与getElementByName区别

    在很多情况下JavaScript中document.forms[0]与getElementByName这两种用法没有区别,这片文章详细的解释了两者的区别和用法,有兴趣的朋友可以参考一下。
    2015-01-01
  • JS实现购物车特效

    JS实现购物车特效

    本文主要分享了用JavaScript实现购物车特效的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论