earchs 柱状图无缝滚动

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>eCharts 无缝滚动</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      padding: 20px;
      background: #222;
      font-size: 0;
    }

    .chartBox {
      width: 700px;
      height: 400px;
      background: #fff;
    }
  </style>
</head>

<body>

  <div id="chartBox" class="chartBox"></div>



  <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts.common.min.js"></script>
  <script>
    $(function () {
      var data = {
        names: [
          'zs', 'ls', 'ww', 'zl', 'ln',
        ],
        series: [{
          data: [
            20, 25, 30, 35, 40, 
            ],
        },

		],
      };
      chartFun($('#chartBox'), data);

      function chartFun(dom, chartData, time) {
        var chart = echarts.init(dom.get(0));
        var chartOptions = {
   
          grid: {
            top: "13%",
            bottom: "5%",
            left: "5%",
            right: "8%",
            containLabel: true
          },
          yAxis: [{
         
            type: 'category',
            data: []
          }],
          xAxis: [{
            type: 'value',
            scale: true,
            min: 0,
          
          }],
          series: [
          {
           
            type: 'bar',
            data: []
          }]
        };

        var maxIndex = 3, // 最大显示个数
          curIndex = 0; // 当前显示的第一项下标

        setInter();

        function setInter() {
          var ops = {
              names: [],
              series: [{
                  data: []
                },
              ]
            },
          leng = chartData.names.length,
            
          isIntval = leng > maxIndex;

          maxIndex = isIntval ? maxIndex : leng;

          for (var i = curIndex; i < curIndex + maxIndex; i++) {

            var j = i >= leng ? i - leng : i;

            ops.names.push(chartData.names[j]);

            ops.series[0].data.push(chartData.series[0].data[j]);

            

          }
          chartOptions.yAxis[0].data = ops.names;
          ops.series.map(function (item, index) {
            chartOptions.series[index].data = item.data;
          });
          console.log(chartOptions);
          chart.setOption(chartOptions);

          if (isIntval) {

            setTimeout(function () {

              curIndex = curIndex >= leng ? 0 : curIndex;

              curIndex++;

              setInter();

            }, 3000);
            
          }
        }

      }

    });
  </script>
</body>

</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值