javascript - 使用 eCharts 重复动画

标签 javascript animation echarts

我正在使用 eCharts 绘制一些散点图。我有几个数据系列,我想要的是每个数据系列都按照我选择的动画顺序出现。相反,发生的情况是,第一个系列根据我的选择进行动画处理,但后续系列将恢复为默认动画,尽管(据我所知)我仍在为它们定义动画。

以下是我可以制作的最短的完整示例...

var chartOptions = function(seriesData) {
  let option = {
    xAxis: {
      min: 0,
      max: 11
    },
    yAxis: {
      min: 0,
      max: 11
    },
    series: [{
      name: "Series 1",
      type: 'scatter',
      data: seriesData,
      color: "red",
      animationDelay: function(idx) {
        return idx * 250;
      },
      animationEasingUpdate: "linear"
    }, ]
  };
  return option;
};

var nextSeries = function(seriesData) {
  let series = {
    series: [{
      name: "Next series",
      type: 'scatter',
      data: seriesData,
      color: "blue",
      animationDelay: function(idx) {
        return idx * 250;
      },
      animationEasingUpdate: "linear"
    }, ]
  };
  return series;
};

var series1 = [
  [1, 1],
  [2, 2],
  [3, 3],
  [4, 4],
  [5, 5]
];
var series2 = [
  [10, 10],
  [9, 9],
  [8, 8],
  [7, 7],
  [6, 6]
];
var series3 = [
  [10, 10],
  [1, 1],
  [8, 8],
  [2, 2],
  [6, 6]
];
var seriesAll = [series1, series2, series3]

var options = chartOptions(series1);
var chart1 = echarts.init(document.getElementById("ChartView"));
chart1.setOption(options);
var i = 0;
var timer = setInterval(function() {
  i++;
  if (i >= seriesAll.length) {
    clearInterval(timer)
  } else {
    var nextOptions = nextSeries(seriesAll[i])
    chart1.setOption(nextOptions);
  };
}, 2000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0/echarts-en.js"></script>


<div id="ChartView" style="height:300px;max-width:300px;">
</div>

最佳答案

好吧,您可以先清除所有散点图,然后绘制下一个系列,如下所示:

chart1.setOption(nextSeries([]));
chart1.setOption(nextOptions);

var chartOptions = function(seriesData) {
    let option = {
        xAxis: {
            min: 0,
            max: 11
        },
        yAxis: {
            min: 0,
            max: 11
        },
        series: [{
            name: "Series 1",
            type: 'scatter',
            data: seriesData,
            color: "red",
            animationDelay: function(idx) {
                return idx * 250;
            },
            animationEasingUpdate: "linear"
        }, ]
    };
    return option;
};

var nextSeries = function(seriesData) {
    let series = {
        series: [{
            name: "Next series",
            type: 'scatter',
            data: seriesData,
            color: "blue",
            animationDelay: function(idx) {
                return idx * 250;
            },
            animationEasingUpdate: "linear"
        }, ]
    };
    return series;
};

var series1 = [
    [1, 1],
    [2, 2],
    [3, 3],
    [4, 4],
    [5, 5]
];
var series2 = [
    [10, 10],
    [9, 9],
    [8, 8],
    [7, 7],
    [6, 6]
];
var series3 = [
    [10, 10],
    [1, 1],
    [8, 8],
    [2, 2],
    [6, 6]
];
var seriesAll = [series1, series2, series3]

var options = chartOptions(series1);
var chart1 = echarts.init(document.getElementById("ChartView"));
chart1.setOption(options);
var i = 0;
var timer = setInterval(function() {
    i++;
    if (i >= seriesAll.length) {
        clearInterval(timer)
    } else {
        var nextOptions = nextSeries(seriesAll[i])
        chart1.setOption(nextSeries([]));
        chart1.setOption(nextOptions);
    };
}, 2000);
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js" > </script> 
<script src = "https://cdnjs.cloudflare.com/ajax/libs/echarts/4.1.0/echarts-en.js"> </script>
<div id = "ChartView" style = "height:300px;max-width:300px;" >
</div>

关于javascript - 使用 eCharts 重复动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53793755/

相关文章:

javascript - Mongoose ,nodejs,全文搜索

javascript - 为什么 javascript 不响应这个?

javascript - 动画:悬停在 "image"上,图像粒子移动

javascript - 在此动画中如何使侧面元素沿 x 轴旋转?

refresh - ECharts 刷新数据变化

Javascript 到 Java AES

javascript - fullcalendar 两类制日历,着色周

android - Activity 结束时将动画应用于 Activity ?

javascript - 百度Echarts添加拖拽选项Polar

javascript - 基于apache echarts中的逻辑的线条颜色变化