ECharts异步加载动画

关键代码

    fetch('data01.json')  //文件夹地址,不使用全局地址
            .then(response => response.json()) // 解析为JSON  
            .then(data => {  
                var seriesData = data.map(item => ({  
                    value: item.rate, // rate属性表示录取率  
                    name: item.year //year属性表示年份  
                }));  
                // 更新选项以包含数据 
                $('#selection').change(function() {  
            var themeName = $(this).val();  
             })  
                option1.series[0].data = seriesData;  
  })  

案例完整代码1

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>w3cschool (www.w3cschool.cn) </title>
  <!-- 引入 echarts.js -->
  <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts-en.common.js"></script>
</head>
<body>
  <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
  <div id="main" style="width: 600px;height:400px;"></div>
  <script type="text/javascript">
    var myChart = echarts.init(document.getElementById('main'));
    // 显示标题,图例和空的坐标轴
    function fetchData(cb) {
      // 通过 setTimeout 模拟异步加载
      setTimeout(function () {
        cb({
          categories: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
          data: [5, 20, 36, 10, 10, 20]
        });
      }, 3000);
    }
    // 初始 option
    option = {
      title: {
        text: '异步数据加载示例'
      },
      tooltip: {},
      legend: {
        data: ['销量']
      },
      xAxis: {
        data: []
      },
      yAxis: {},
      series: [{
        name: '销量',
        type: 'bar',
        data: []
      }]
    };
    myChart.showLoading();
    myChart.setOption(option);
    fetchData(function (data) {
      myChart.hideLoading();
      myChart.setOption({
        xAxis: {
          data: data.categories
        },
        series: [{
          // 根据名字对应到相应的系列
          name: '销量',
          data: data.data
        }]
      });
    });
  </script>
</body>
</html>

实现

案例完整代码2

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/5.5.0/echarts.min.js"></script>
</head>
<body>
    <!-- 创建一个DOM容器 -->
    <div id="myecharts" style="width: 800px;height: 400px;border: 2px solid;"></div>
    <script>
        var base = +new Date(2024,4,21);
        // 一天多少毫秒
        var oneDay = 24 * 3600 * 1000;
        var date = [];
        
        // 随机生成数据
        var data = [Math.random() * 150];
        var now = new Date(base)
 
        function addData(flag){
            // 字符串拼接
            now = [now.getFullYear(),now.getMonth()+1,now.getDate()].join("/");
            date.push(now);
            data.push((Math.random() - 0.4) * 10 + data[data.length-1]);
 
            if(flag){
                // 如果是更新状态,每次删除列表第一个数据
                date.shift();
                data.shift();
            }
            now = new Date(+new Date(now) + oneDay);
        }
 
        for(let i = 1;i < 100;i++){
            addData();
        }
 
        var option = {
            xAxis:{
                type:'category',
                boundaryGap:false,
                data:date
            },
            yAxis:{
                boundaryGap:[0,'50%'],
                type:'value'
            },
            series:[
                {
                    name:'成交',
                    type:'line',
                    smooth:true,
                    symbol:'none',
                    stack:'a',
                    areaStyle:{
                        normal:{}
                    },
                    data:data
                }
            ]
        };
 
        setInterval(function(){
            addData(true);
            myChart.setOption({
                xAxis:{
                    data:date
                },
                series:[{
                    name:'成交',
                    data:data
                }]
            });
        },500);
 
        var myChart = echarts.init(document.getElementById("myecharts"));
        myChart.setOption(option);
    </script>
</body>
</html>

实现

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值