echarts水平柱状图滚动

// 红色部分为滚动原理

// 柱状echarts

    zzEcharts() {

      if (this.timer) {

        clearInterval(this.timer);

      }

      if (this.echartmyChart) {

        this.echartmyChart.clear();

      }

      let chartDom = document.getElementById("zzEcharts");

      let myChart = echarts.init(chartDom);

      let MZdata = [2012, 1230, 3790, 2349, 1654, 2012, 1230, 3790, 2349,2012, 1230, 3790, 2349, 1654, 2012, 1230, 3790, 2349];

      let MZname = [

        "德州",

        "德城区",

        "陵城区",

        "禹城市",

        "乐陵市",

        "德州",

        "德城区",

        "陵城区",

        "禹城市",

        "德州",

        "德城区",

        "陵城区",

        "禹城市",

        "乐陵市",

        "德州",

        "德城区",

        "陵城区",

        "禹城市",

      ];

      let option = {

        tooltip: {

          trigger: "axis",

          axisPointer: {

            type: "shadow",

          },

          formatter: function (p) {

            let div = `

                    <div style="margin:10px;display:flex;justify-content: center;align-items: center;">

                     <div style="display:block;;width: 8px;height: 8px;border-radius: 50%;background-color: #0D3053;margin-right:8px;"></div> <div>${p[0].name} : ${p[0].value}</div>

                    </div>

                    `;

            return div;

          },

        },

        grid: {

          top: "top",

          left: "3%",

          right: "5%",

          bottom: "3%",

          containLabel: true,

        },

        dataZoom: [

          {

            yAxisIndex: 0, // 这里是从X轴的0刻度开始

            show: false, // 是否显示滑动条,不影响使用

            type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件

            startValue: 0, // 从头开始。

            endValue: 9, // 一次性展示多少个。

          },

        ],

        xAxis: {

          show: false,

          type: "value",

          boundaryGap: [0, 0.1],

          axisLabel: {

            textStyle: {

              color: "#0D3053", //字体颜色

            },

          },

          splitLine: {

            //去掉网格线

            show: false,

          },

        },

        yAxis: [

          {

            inverse: true,

            type: "category",

            axisLabel: {

              textStyle: {

                color: "#0D3053", //字体颜色

              },

            },

            //设置轴线的属性

            axisLine: {

              show: false,

            },

            //取消刻度线

            axisTick: {

              show: false,

            },

            data: MZname,

          },

          {

            type: "category",

            axisTick: "none",

            axisLine: "none",

            show: true,

            axisLabel: {

              textStyle: {

                color: "#0D3053",

                fontSize: "14",

                // fontStyle:'italic'

              },

            },

            data: MZdata,

          },

        ],

        series: [

          {

            name: "",

            type: "bar",

            itemStyle: {

              normal: {

                barBorderRadius: 10,

                color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [

                  {

                    offset: 0,

                    color: "rgba(41, 162, 245, 0.1)",

                  },

                  {

                    offset: 1,

                    color: "rgba(41, 162, 245, 0.8)",

                  },

                ]),

                label: {

                  show: true,

                  position: "right",

                  textStyle: {

                    fontSize: 14,

                    color: "#fff",

                  },

                },

              },

            },

            data: MZdata,

            label: {

              show: false,

            },

            barWidth: 10,

          },

          {

            z: 12,

            type: "pictorialBar",

            symbol:

              "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAAZlBMVEUAAABe3uVe3+Vf3uVf3+Zf3uVg3+Zg3+Zf3+Vi4OZh4OZg3+Z86/Bh3+Zi4Odj4Odi4OZ86/B76/B86/Bj4ed56+9x5+xn4umB7/N87PB36e+A7/N+7fF/7vJ/7vJ+7fGA7/OB7/PReX+lAAAAIXRSTlMABQkVDREmIhk3MR10LEFFPHh7cUprXE35h2XnqMLAp+mHAG9cAAAB5ElEQVRIx83WjU7CMBQFYIoiKMqU/XUboHv/l/Tce7t2XamDNSacETEmX86tlK2rx4py150o+MstMBLwWRfHKo6JCVxLnvmFGBjFQ58oF1//sUZhGy/ClSTWObgnL4O+bkeN4nY2okfNMbkRt9/vtxz8InoTsWplJSCzFxPmO8+GpSIByX3YQAuGDWtRKhKjCnxDXhF6Z4yxnZ20Wgko7BMRDmxtSGVaI4kdTIgb+zTYoJQlIMlDlmUFgrcDWWC201qSayqlTkiCddWWeV62VU0YlnpRi9VOKaSUsiyq/N0krwq2Ugt7lVpZl5BfHNiytjagMi+XYp0kCR45hMlivVQrE/uU5pXSrCB5bM6d1t2lOZItMqmliT3q5uVxqxzyW/ccfYLNKx7ZTeykMvNyac2yt2Fbc61MHLSC0rwoxbiNdlQ3GBm1NLHQsHUrtEXppR/ljNpW6DbSCoqlFiVoN6YdaFlgsSFVPs1BdT8OaB5QyQzVcaqWDows/zepxR8ObLglTrdtCRVuRNj4Rrxh+//0ke2f8KVL+Kon3GCSbmsJN9OUW3j6g0Ns+LgCij2u0h+Sghc8mlMPBMgdx5DFh59VmOVHrvmDnoNxCz3J7MFWsMuaLyR089xz/xhlfijvwutR8gv3zk6BLUUeCgAAAABJRU5ErkJggg==",

            symbolSize: [30, 30],

            symbolOffset: ["34%", 0],

            symbolPosition: "end",

            data: MZdata,

          },

        ],

      };

      option && myChart.setOption(option);

      // 通过定时器的方式刷新,改变statrValue,endValue

      this.timer = setInterval(() => {

      //每次向后滚动一个,最后一个从头开始。

        let arr = MZdata;

        if (option.dataZoom[0].endValue == arr.length) {

          option.dataZoom[0].endValue = 9; //等于上面定义的一次性展示多少个

          option.dataZoom[0].startValue = 0;

        } else {

          option.dataZoom[0].endValue = option.dataZoom[0].endValue + 1;

          option.dataZoom[0].startValue = option.dataZoom[0].startValue + 1;

        }

        option && myChart.setOption(option, true);

      }, 1500);

        // 监听定时器在页面销毁前清除

      this.$once("hook:beforeDestroy", () => {

        clearInterval(this.timer);

      });

      this.echartmyChart = myChart;

    },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值