echarts 实现折线图循环拖尾效果

最近在做数据可视化的大屏,需要实现带有动效的echats图
效果如下:

折线图
这个小光点会一直在两条线上跑
实现思路,使用定时器画线,设置线的样式,代码如下

 const dom = document.getElementById("chart");
    const myChart = echarts.init(dom);

    let data = [
        [502.84, 205.97, 332.79, 281.55, 398.35, 214.02],
        [1502.84, 1205.97, 1332.79, 1281.55, 1398.35, 1214.02]
    ];
    let a = [{
        name: "注册总量",
        type: "line",
        smooth: 0.27,
        data: [502.84, 205.97, 332.79, 281.55, 398.35, 214.02],
        animation: false
    }, {
        name: "注册总量",
        type: "line",
        smooth: 0.27,
        data: [1502.84, 1205.97, 1332.79, 1281.55, 1398.35, 1214.02],
        animation: false
    }]
    let i = 1;
    let step = 0.01; //光点移动速度
    let dataIndex = 0;
    setInterval(() => {
        i++;
        let startPre = step * (i - 1);
        let start = step * i;
        let end = step * (i + 1);
        let endSuffix = step * (i + 2);
        if (endSuffix >= 1) {
            endSuffix = 1;
            i = 0;
        }
        let lineList = [];
        let lines = {
            type: "line",
            smooth: 0.27,
            data: data[dataIndex],
            animation: false,
            lineStyle: {
                width: 2, // 设置光点的长度
                color: {
                    type: "linear",
                    colorStops: [{
                        offset: startPre,
                        color: "transparent"
                    }, {
                        offset: start, //光点的颜色
                        color: "#fff"
                    }, {
                        offset: end, //光点的颜色
                        color: "#fff"
                    }, {
                        offset: endSuffix,
                        color: "transparent"
                    }],
                }
            }
        };


        if (endSuffix >= 1) {
            dataIndex++;
            if (dataIndex >= data.length) {
                dataIndex = 0;
            }
        }
        option = {
            xAxis: {
                type: "category",
                data: ["A", "B", "C", "D", "E", "F"]
            },
            yAxis: {
                type: "value"
            },
            legend: {
                show: true,
            },
            series: a.concat(lines)
        };
        myChart.setOption(option)
    }, 100);

记得引入echarts文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值