echarts的图表双击事件、单击某块、滚轮放大缩小

echarts的图表双击事件@dblclick

 <div  class="barPieBox" @dblclick="leftondbClick()"

                     style="width: 98%;height:250px ;"  >

                  <div :id=“leftBox1”

                       style="width:100%;height:100%;">

                  </div>               

</div>

echarts的图表单机某个柱子、线或者饼图的一个区域

//可以获取到X轴Y轴

 this[charts].on('click',function(params){

}

 柱形图或者折线图【带滑动条的echarts】点击某个柱子显示附件柱子,鼠标滚轮放大缩小,并动态显示柱形图上面的文字,缩小不显示

dataZoom: [

              {

                height: 8,

                realtime: true,

                show: true,

                start: (x.length > 17) ? 20 : 40, // 表示默认展示20%~80%这一段。

                 end: (x.length > 17) ? 50 : 70,

                          minValueSpan:0.6,//控制滚动到最大后还能一直滚动放大,导致缩小时体验感不好

              },

              {

                height: 8,

                realtime: true,

                type: 'inside',

                start: (x.length > 17) ? 20 : 40, // 表示默认展示20%~80%这一段。

                end: (x.length > 17) ? 50 : 70,

                 minValueSpan:0.6,//控制滚动到最大后还能一直滚动放大,导致缩小时体验感不好

              },

            ],          

      

   this[charts] = this.$echarts.init(document.getElementById(id));       

        this[charts].clear();

        this[charts].setOption(option)

        this[charts].resize()

//滚轮滚动,滚动到一定值,也就是柱子放大后,显示顶部文字,紧挨着    this[charts].resize()写

 this[charts].on('datazoom', () => {

          const datazoom = this[charts].getOption().dataZoom[0] // 用getOption获取改变的值

          // console.log(datazoom, 'datazoom');

          if (datazoom.end-datazoom.start<0.4) {

             let allSeries=[]

              y.forEach(item => {

                item.label.show=true

                allSeries.push(item)

              })

              y=allSeries

            }else{

              let allSeries=[]

              y.forEach(item => {

                item.label.show=false

                allSeries.push(item)

              })

              y=allSeries

            }

            //重新渲染图表

            this[charts].setOption({

              series: y

            })

        })

//点击显示附近,也就是单个柱子或者线的点击事件,紧挨着    this[charts].resize()写

  const zoomSize =2;          

  this[charts].on('click',function(params){     

//监听点击的那个

              _this[charts].dispatchAction({

                type: 'dataZoom',

                startValue:x[Math.max(params.dataIndex - zoomSize / 2, 0)],

                endValue: x[Math.min(params.dataIndex + zoomSize / 2, y.length - 1)],

              });             

          })

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在vue中使用echarts实现图表放大缩小是可以实现的。首先,需要在vue组件中引入echarts,并绑定图表数据。 接着,在html页面中添加一个echarts容器div,通过echarts初始化,将数据绑定到echarts上。具体代码如下: // 引入echarts import echarts from 'echarts' // 绑定图表数据 data() { return { chartData: [] } } // 添加echarts容器div <div ref="chart" style="width: 100%; height: 100%;"></div> // 初始化echarts并绑定数据 mounted() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption(this.chartData) } 为了实现图表放大缩小效果,可以使用echarts自带的toolbox组件。在echarts初始化时,添加toolbox配置项,并设置tool属性的值为: { feature: { dataZoom: { xAxisIndex: 'none' }, restore: {}, saveAsImage: {} } } 通过设置dataZoom属性可以实现图表放大缩小效果,xAxisIndex属性表示只对x轴进行缩放操作。restore属性表示重置图表,saveAsImage属性表示下载图表为图片。 完整代码如下: // 引入echarts import echarts from 'echarts' // 绑定图表数据 data() { return { chartData: { // 图表配置项 // ... toolbox: { feature: { dataZoom: { xAxisIndex: 'none' }, restore: {}, saveAsImage: {} } } } } } // 添加echarts容器div <div ref="chart" style="width: 100%; height: 100%;"></div> // 初始化echarts并绑定数据 mounted() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption(this.chartData) } 通过以上代码,即可在vue中使用echarts实现图表放大缩小效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值