echarts通过dataZoom实现单击图像滑动

实现原理;
1.option中配置初始化的dataZoom属性,并确定初始化数据展现位置
2.通过graphic属性配置图标及文本,并添加点击事件onclick;
3.通过dispatchAction的type: ‘dataZoom’,实现数据的最终展现。
效果:点击1图标,图像向左移一条数据,点击2图标,图像右移一条数据
在这里插入图片描述

  <body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div id="main" style="width: 400px;height:300px;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));
	let xData=[];
	let yData =[];
	let xdataLen = xData.length
	let startIndex=0;//开始下标
	let intervalNum= 4;//一屏展示数据条数-1,设置4,说明一屏展示数据是5条

      // 指定图表的配置项和数据
   	let	option: {
        animation:false,
        tooltip: {
          //提示框组件。
          axisPointer: {
            //选中的线条样式
            type: "line",
            lineStyle: {
              color: "rgba(85,125,231,0.1)",
              width: 10,
              type: "solid"
            }
          },
          formatter: (value) => {
          		//数据处理逻辑
           		return ....
          },
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,0.4)",
          textStyle: {
            color: "#fff",
            fontWeight: "500"
          }
        },
        grid: {
          //绘图网格
          left: "0%",
          right: "5%",
          bottom: "0%",
          top: "8%",
          containLabel: true //y轴上的数值自适应,不会超出放不下
        },
        xAxis: {
          type: "category",
          data: xData,//x轴的数据,
          axisLabel: {
            interval: 0,
            formatter: (val)=> {
             //数据处理逻辑	
              return 处理后的值;
            }
          },
          axisLine: {}
        },
        yAxis: {
          type: "value",
          data: yData,//y轴的数据,
          axisLabel: {
            formatter(value) {
              return 处理后的值;
            }
          },
          splitLine: {
            show: true
          }
        },
        series: [
          {
            symbolSize: 4, //圆的大小
            name: "A",
            type: "line",
            itemStyle: {
              color: "#FF8A01",
              lineStyle: {
                color: "#FF8A10"
              }
            }
          },
          {
            name: "B",
            symbolSize: 3,
            type: "line",
            itemStyle: {
              color: "#509AFE",
              lineStyle: {
                color: "#509AFE"
              }
            }
          }
        ],
        dataZoom:[
          {
            show: false,
            type: 'slider',
            xAxisIndex: 0, //设置为x轴上 此处0代表第一个x轴,也可以用数组[0]
            zoomLock: true, // 开启之后能通过鼠标左右拉动,不能滚动显示
            startValue: startIndex,  //X轴展示的开始值下标  -- 开始的值
            endValue: startIndex+intervalNum// 结束的值的下标,根据开始下标和结束下标可以控制一屏展示多少条数据,此处是展示下标为startIndex-endIndex  的数据
          }
        ],
        //graphic设置了触发点击事件的图标
        graphic:[
          {
            type: 'group',
            left: 30,
            top: 'center',
            id: 'slideStep',
            z: 100,
            onclick: ()=>{ handleGo(0) },
            children: [
              {
                type: 'rect',
                id: 'slicestep',
                left: 'center',
                top: 'middle',
                shape: {
                  width: 30,
                  height: 30,
                  r: [15],
                },
                style: {
                  fill: 'rgba(0,0,0,0.3)',
                }
              },
              {
                type: 'text',
                left: 'center',
                top: 'middle',
                style: {
                  fill: '#fff',
                  text: '<',
                  font: '20px Microsoft YaHei'
                }
              }
            ]
          },
          {
            type: 'group',
            id: 'addstep',
            right: 0,
            z: 100,
            top: 'center',
            invisible: false,
            ignore: true,
            onclick: ()=>{ handleGo(1) },
            children: [
              {
                type: 'rect',
                left: 'center',
                top: 'middle',
                shape: {
                  width: 30,
                  height: 30,
                  r: [15],
                },
                style: {
                  fill: 'rgba(0,0,0,0.3)',
                }
              },
              {
                type: 'text',
                left: 'center',
                top: 'middle',
                style: {
                  fill: '#fff',
                  text: '>',
                  font: '20px Microsoft YaHei'
                }
              }
            ]
          }
        ]
      }
		//handleGo方法是实现修改图像展示开始值、结束值
    const handleGo =(val)=>{ 
      if(startIndex == 0 && val ===0 || startIndex  == (xdataLen.value - 5)  && val === 1){
      }else {
        startIndex  = val === 1 ? ++startIndex  : --startIndex ;
        myChart.dispatchAction({
          type: ' ',
          dataZoomIndex: 0,
          startValue: startIndex ,
          // 结束位置的数值
          endValue: startIndex + intervalNum
        })
      }
    }
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/328558.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

定制聚四氟乙烯溢流釜出图灵活加工

您提供想法&#xff0c;我们负责实现。

2024年第二届“华数杯”国际大学生数学建模竞赛 (B题 ICM)| 光伏发电分析 |数学建模完整代码+建模过程全解全析

光伏发电是一种重要的可再生能源。将太阳能转化为电力可以减少对传统能源的依赖,具有显著的环保和可持续发展优势。全球范围内,光伏发电正在迅速发展。目前,许多国家将光伏发电作为推动清洁能源转型的重要手段。这些国家在政策支持、技术创新和市场发展方面增加了对光伏发电的投…

【windows】右键添加git bash here菜单

在vs 里安装了git for windows 后&#xff0c;之前git-bash 右键菜单消失了。难道是git for windows 覆盖了原来自己安装的git &#xff1f;大神给出解决方案 手动添加Git Bash Here到右键菜单&#xff08;超详细&#xff09; 安装路径&#xff1a;我老的 &#xff1f; vs的gi…

zabbix其他配置

自动发现 zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多&#xff0c;zabbix server 登记耗时较久&#xff0c;且压力会较大。 systemctl disable --now firewalld setenforce 0 hostnamectl se…

统计学R语言实验4 均值假设检验

统计学R语言实验4 均值假设检验 一、实验目的 1. 掌握理解假设检验的相关概念。 2. 掌握理解假设检验的相关方法。 3. 熟悉R语言等语言的集成开发环境。 二、实验分析与内容 完成教材P88的第5题。 t检验统计量为-1.4628。显然当t较大时&#xff0c;说明x-相对于μ很小&a…

​Portkey AI网关:一个用来连接多种人工智能模型的开源工具

简介 它允许开发者通过一个简单的API接口来访问超过100种不同的大语言模型。包括OpenAI、Anthropic、Mistral、LLama2、Anyscale、Google Gemini等。安装体积只有45kb&#xff0c;处理速度提升了9.9倍&#xff0c;可以在多个不同的AI模型中来回切换。可以根据自己的需要进行灵…

外汇110:外汇交易中最常见的三种技术图表

不管做什么投资&#xff0c;我们都要学会分析趋势图&#xff0c;那么常见的技术图表有哪些&#xff0c;技术图表的作用是什么&#xff1f;下面就来一一分析&#xff1f;什么是技术图表&#xff1f; 对于投资人来说&#xff0c;掌握投资领域的市场趋势走向是十分重要&#xff0c…

跟着cherno手搓游戏引擎【7】Input轮询

在引擎程序中任何时间&#xff0c;任何位置都能知道按键是否按下、鼠标的位置等等信息。 与事件系统的区别&#xff1a;事件系统是在按下时调用并传递按键状态&#xff1b;轮询是每时每刻都能获取按键状态 创建基类&#xff1a; YOTO/Input.h&#xff1a;名如其意 #pragma …

九:day01_ 消息队列01

第一章 RabbitMQ 概念 1.1.1 消息队列 MQ全称Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。 1.1.2 消息 两台计算机间传送的数据单位。消息可以非常简单&#xff0c;例如只包含文本字符串&#x…

java web万能模板(附带防微博源码)

文章目录 java EE 项目万能模板套用创建一个java EE项目1.点击java ee2.点击finish3.一个Java ee项目创建完毕4.点击运行5.运行结果 万能模板连接数据库1.在pom.xml文件导入数据库连接所需要的依赖2.进行导入3. 导入以后刷新Maven4.找到 resources 文件。5.在resources的文件路…

​​社交媒体与新闻:Facebook在信息传播中的作用

社交媒体已经成为我们获取和传播新闻的主要渠道之一&#xff0c;而Facebook作为社交媒体的巨头&#xff0c;在信息传播中扮演着举足轻重的角色。本文将深入探讨社交媒体对新闻传播的影响&#xff0c;聚焦于Facebook在这一领域的独特作用&#xff0c;以及这种作用对我们的新闻体…

得物云原生容器技术探索与落地实践

一、前言 得物 App 作为互联网行业的后起之秀&#xff0c;在快速的业务发展过程中基础设施规模不断增长&#xff0c;继而对效率和成本的关注度也越来越高。我们在云原生技术上的推进历程如图所示&#xff0c;整体上节奏还是比较快的。 从 2021 年 8 月开始&#xff0c;我们以提…

Mr. Cappuccino的第69杯咖啡——Oracle之存储过程

Oracle之存储过程 准备数据PLSQL编程概念程序结构运行程序在DataGrip中运行DataGrip设置控制台输出打印内容 在sqlplus中运行sqlplus设置控制台输出打印内容 变量普通变量引用型变量记录型变量 流程控制条件分支循环 游标概念语法游标的属性创建与使用带参数的游标 存储过程概念…

【数据结构】——期末复习题题库(11)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

飞凌嵌入式这2款核心板已完成“矿鸿OS”适配,矿企伙伴看过来

近日&#xff0c;飞凌嵌入式FETA40i-C和FETMX6ULL-S两款核心板成功完成“矿鸿OS”的系统适配&#xff0c;嵌入式核心板与“矿鸿”操作系统的结合与应用&#xff0c;将进一步推动煤矿行业的数字化、智能化进程。 矿鸿OS&#xff08;矿山鸿蒙系统&#xff09;是华为和国家能源集团…

全自动网页制作系统流星全自动网页生成系统重构版输入网页信息即可制作

源码优点: 所有模板经过精心审核与修改&#xff0c;完美兼容小屏手机大屏手机&#xff0c;以及各种平板端、电脑端和360浏览器、谷歌浏览器、火狐浏览器等等各大浏览器显示。 免费制作 为用户使用方便考虑&#xff0c;全自动网页制作系统无需繁琐的注册与登入&#xff0c;直接…

Go后端开发 -- 面向对象特征:结构体 继承 多态 interface

Go后端开发 – 面向对象特征&#xff1a;结构体 && 继承 && 多态 && interface 文章目录 Go后端开发 -- 面向对象特征&#xff1a;结构体 && 继承 && 多态 && interface一、Go的结构体1.结构体的声明和定义2.结构体传参 二、将…

RXJS中Subject, BehaviorSubject, ReplaySubject, AsyncSubject的区别?

在RxJS&#xff08;Reactive Extensions for JavaScript&#xff09;中&#xff0c;Subject、BehaviorSubject、ReplaySubject和AsyncSubject都是Observable的变体&#xff0c;它们用于处理观察者模式中的不同场景。以下是它们之间的主要区别&#xff1a; 1、Subject: 是一种特…

AGI是否应该具备基础的常识模型

通用人工智能&#xff08;AGI&#xff09;是指能够理解或学习任何人类或其他动物能够做的智力任务的人工智能系统&#xff0c;它是人工智能领域的终极目标之一。 AGI 的研究范式是指在 AGI 领域中&#xff0c;研究者们所遵循的一些基本的理念、方法和目标。 AGI 是否应该存在基…

使用 Picocli 开发 Java 命令行,5 分钟上手

大家好&#xff0c;我是鱼皮&#xff0c;对不会前端的同学来说&#xff0c;开发 命令行工具 是一种不错的展示系统功能的方式。在 Java 中开发命令行工具也很简单&#xff0c;使用框架&#xff0c;几分钟就能学会啦~ Picocli 入门 Picocli 是 Java 中个人认为功能最完善、最简单…