echarts自动轮播tooltip

1. 将自动轮播的工具函数封装到 utils/echart-tooltip-carousel.js

/**
 * echarts自动轮播tooltip
 * @param {Object} chart echart实例
 * @param {Number} num 轮播数量
 * @param {Number} time 轮播间隔时间
 */
export function loopShowTooltip(chart, num=20, time=2000) {
  let count = 0
  // 将定时器挂到echart实例上
  chart.timer && clearInterval(chart.timer)
  chart.timer = setInterval(function () {
    chart.dispatchAction({
      type: 'downplay',
      seriesIndex: 0
    })
    chart.dispatchAction({
      type: 'highlight',
      seriesIndex: 0,
      dataIndex: count
    })
    chart.dispatchAction({
      type: 'showTip',
      seriesIndex: 0,
      dataIndex: count
    })
    count++
    if (count >= num) {
      count = 0
    }
  }, time)

  chart.on('mouseover', function (params) {
    clearInterval(chart.timer)
    chart.dispatchAction({
      type: 'downplay',
      seriesIndex: 0
    })
    chart.dispatchAction({
      type: 'highlight',
      seriesIndex: 0,
      dataIndex: params.dataIndex
    })
    chart.dispatchAction({
      type: 'showTip',
      seriesIndex: 0,
      dataIndex: params.dataIndex
    })
  })

  chart.on('mouseout', function () {
    chart.timer && clearInterval(chart.timer)
    chart.timer = setInterval(function () {
      chart.dispatchAction({
        type: 'downplay',
        seriesIndex: 0
      })
      chart.dispatchAction({
        type: 'highlight',
        seriesIndex: 0,
        dataIndex: count
      })
      chart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: count
      })
      count++
      if (count >= num) {
        count = 0
      }
    }, time)
  })
}
export default {
  loopShowTooltip
}

2.在vue3中使用的示例

<template>
  <div ref="testRef"></div>
</template>

<script>
// 通过 getCurrentInstance 访问内部组件实例
import { getCurrentInstance } from 'vue'
import { loopShowTooltip } from '@/utils/echart-tooltip-carousel.js'

export default {
  data() {
    // echarts实例
    this.echarts = null
    // 图表实例
    this.chart = null
    return {

    }
  },
  mounted() {
    this.drawChart()
  },
  methods: {
    /**
     * 绘制图表
     */
    async drawChart() {
      if (!this.echarts) {
        this.echarts = getCurrentInstance().appContext.config.globalProperties.$echarts
      }
      
      const option = {...}

      // 获取数据
      ....

      if (!this.chart) {
        this.chart = this.echarts.init(this.$refs.testRef)
      }

      this.chart.setOption(option)

      // 自动轮播
      loopShowTooltip(this.chart, 12, 2000)
    }
  }
}
</script>

3.效果

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现echarts自动轮播,可以使用echarts的工具函数tools.loopShowTooltip()。在注册表后调用该方法,并传入echarts实例myChart和配置项option,其中option中必须包含tooltip的配置才能生效。这样,工具函数就会自动轮播tooltip的显示。 此外,还可以参考echarts的相关文档和示例来了解更多关于echarts自动轮播功能的配置项和用法。例如,可以参考echarts圆环饼图示例和饼图配置项来学习如何使用自动轮播功能。另外,echarts还提供了标签内容格式器、事件与行为以及鼠标事件等功能,可以进一步定制和增强自动轮播的效果。 为了更好地了解echarts自动轮播功能,可以访问PPChart、madeapie和isqqw这些提供丰富echarts在线示例的网站。尽管PPChart服务可能不太稳定,但isqqw是PPChart开发者推荐的另一个站点,它也提供了echarts的在线示例。通过参考这些示例,可以更好地理解和应用echarts自动轮播功能。 总结起来,要实现echarts自动轮播,可以使用tools.loopShowTooltip()方法,并在配置项中添加tooltip的配置。通过参考相关文档和示例,可以进一步定制和增强自动轮播的效果。访问PPChart、madeapie和isqqw这些网站,可以获取更多关于echarts自动轮播的示例和文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [echarts图表柱状图折线图动态轮播tooltip窗](https://download.csdn.net/download/Dyc_SE/86399277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [echarts饼图:实现多层图表同步自动轮播,鼠标悬浮时停止轮播,移出鼠标后重新开始轮播效果](https://blog.csdn.net/qq_36604536/article/details/123905221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值