动画的使用(ECharts)

目录

1.加载动画

ECharts已经内置好了加载数据的动画,我们只需要在合适的时机显示或隐藏即可

显示加载动画:mCharts.showLoading()

隐藏加载动画:mCharts.hideLoading()

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="lib/echarts.min.js"></script>
  <script src="lib/jquery-3.6.0.min.js"></script>
</head>
<body>
  <div style="width: 600px;height: 400px;"></div>
  <script>  
      var mCharts = echarts.init(document.querySelector('div'))
      mCharts.showLoading();      //显示加载动画
      $.get('data/test_data.json', function(data){
        mCharts.hideLoading();    //隐藏加载动画
        var axisData = []
        for (var i=0;i<data.length;i++) {
          var height = data[i].height
          var weight = data[i].weight
          var newArr = [height, weight]
          axisData.push(newArr)
        }
        var option = {
          xAxis: {
              type: 'value',
              scale: true
          },
          yAxis: {
              type: 'value',
              scale: true
          },
          series: [
            {
              name: '身高和体重',
              type: 'effectScatter',
              showEffectOn: 'emphasis',
              rippleEffect: {
                scale: 8
              },
              data: axisData
            },
          ]
        }
        mCharts.setOption(option)
      }) 
  </script>
</body>
</html>

 data/test_data.json

[{ "gender": "female", "height": 177.1, "weight": 69.6 }, 
  ...
  { "gender": "female", "height": 174.1, "weight": 53.7 } ]

为了放缓数据的获取速度,从而看到加载动画,可在Network中设置一下

加载动画如图 

 

2.增量动画

图表已经展示出来,但是数据又发生变动,这样引起的动画叫增量动画。

setOption方法来实现

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="lib/echarts.min.js"></script>
</head>
<body>
  <div style="width: 600px;height: 400px;"></div>
  <button id='modify'>修改数据</button>
  <button id='add'>添加数据</button>
  <script>
      var mCharts = echarts.init(document.querySelector('div'))
      var xDataArr = ['张三', '李四', '王五', '钱七', '孙八', '赵九']
      var yDataArr = [88, 45, 48, 89, 99, 77]
      var option = {
        xAxis: {
            type: 'category',
            data: xDataArr
        },
        yAxis: {
            type: 'value',
        },
        series: [{
            name: '语文',
            type: 'bar',
            barWidth: '50%',
            data: yDataArr,
            label: {
              show: true,
              rotate: 30,
              position: 'inside'
            }
        }]
      }
      mCharts.setOption(option)
      
      var btnModify = document.querySelector('#modify');
      btnModify.onclick = function() {
        var newDataArr = [69, 95, 18, 89, 99, 77]
        // setOption可以设置多次
        // 新的option和旧的option的关系并不是相互覆盖的关系,而是相互整合的关系
        // 我们在设置新的option的时候,只需要考虑到变化的部分就行
        var option = {
          series: [
            {
              data: newDataArr
            }
          ]
        }
        mCharts.setOption(option)
      }
      var btnAdd = document.querySelector('#add')
      btnAdd.onclick = function() {
        xDataArr.push('小明')
        yDataArr.push(96)
        var option = {
          xAxis: {
            data: xDataArr
          },
          series: [
            {
              data: yDataArr
            }
          ]
        }
        mCharts.setOption(option)
      }
  </script>
</body>
</html>

原图 

点击“修改数据” 按钮之后

  

 点击“添加数据” 按钮之后

 

3.动画的配置项

开启动画

animation:true

动画时长

animationDuration:5000

缓动动画

animationEasing:'bounceOut',其它参数可查看官网

动画阈值

animationThreshold:8

单个系列显示的图形数量大于这个阈值时会关闭动画

 var option = {
        animation: true,              //控制动画是否开启
        animationDuration: 5000,      //控制动画的时长
        animationEasing: 'bounceOut', //缓动动画
        animationThreshold: 7,        //动画元素的阈值
        ...        //原代码不变
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值