echart 时间滚动_echarts x,y轴数据太长自动滚动(每次只显示固定数量,定时滚动显示其它)...

本文介绍如何在Echarts中实现柱状图数据的自动滚动显示,每次仅展示固定数量的数据,例如10条,并在滚动到最后时返回第一条,形成循环效果。通过设置Echarts的dataZoom属性和定时器来更新startValue和endValue实现滚动。当数据不足设定数量时,不会触发滚动。
摘要由CSDN通过智能技术生成

做项目时遇到了一个这样的echarts表,和正常的柱状图没啥区别,但是有个需求就是需要每次只显示10条数据,然后定时滚动显示其它,当滚动到最后一条数据,返回第一条一直循环,这个怎么实现查了好多的例子都没好的解决方案,还是在万能的度娘找到了答案,嘻嘻嘻~~

看一下设计图

9d2005f4a793

echarts.png

实际效果

9d2005f4a793

autoPlay.gif

下面我们一起看一下解决方案

echarts图表创建

var myChart = echarts.init(document.getElementById('echarts'))

var KSMC = [100, 82, 80, 70, 65, 66, 60,54, 50, 42, 40]

var option = {

color: ['#3398DB'],

tooltip: {

trigger: 'axis',

axisPointer: { // 坐标轴指示器,坐标轴触发有效

type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'

}

},

grid: {

left: '3%',

right: '4%',

bottom: '3%',

containLabel: true

},

xAxis: [

{

type: 'value'

}

],

dataZoom: [//滑动条

{

yAxisIndex: 0,//这里是从X轴的0刻度开始

show: false,//是否显示滑动条,不影响使用

type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件

startValue: 0, // 从头开始。

endValue: 6 // 一次性展示6个。

}

],

yAxis: [

{

type: 'category',

inverse:true, //是否是反向坐标轴

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','测试','测试1','测试2','测试3'],

}

],

series: [

{

name: '直接访问',

type: 'bar',

barWidth: '60%',

data: KSMC

}

]

};

myChart.setOption(option);

自动滚动效果是依赖于Echarts自带滑动条实现的:

除了在option里加dataZoom属性

还需要在绑定的地方这样写

//通过定时器的方式刷新,改变statrValue,endValue

setInterval(function () {

// 每次向后滚动一个,最后一个从头开始。

if (option.dataZoom[0].endValue == KSMC.length ) {

option.dataZoom[0].endValue = 6;

option.dataZoom[0].startValue = 0;

}

else {

option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;

option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;

}

myChart.setOption(option);

}, 2000);

这样就可以了

看源码可知,这个方法有一个弊端,因为是捕获当目前展示的最后一个数字所在位置为数组长度减一(最后一个)时,将展示数字的值换掉,从头展示,我们目前设置的是展示10个,但如果展示的数组个数小于设置的个数时,就永远都捕获不到了(展示数组个数小于设置个数也没必要进行滚动显示)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值