echarts自适应父级盒子宽度

2023-11-11

这里写自定义目录标题

效果:手动改变窗口大小,echarts实现自动适应父级盒子宽度

1.在vue中安装一个插件element-resize-detector-----这是一个元素调整大小检测器

npm install element-resize-detector

2.安装成功后在页面引用


<template>
 <div>
 <div id='echartsWarp'>
 <div id="speeds" :style="{ width: '100%', height: '450px' }"></div>
 <div>
 </div>
</template>
<script>
// 直接导入使用,也可以在main.js中引入
//elementResizeDetectorMaker,该全局函数是使元素调整大小检测器实例的maker函数。
var elementResizeDetectorMaker = require("element-resize-detector");
export default {
  name: "Index",
  data() {
    return {
    }
    },
    mounted(){
    this.changeEchartsWidthApi();
    },
    methods:{
    //监听盒子大小,改变echarts宽度,实现echarts自适应
    changeEchartsWidthApi() {
      // 创建实例,无参数
      var erd = elementResizeDetectorMaker(); //使用默认选项(将使用基于对象的方法)
      // 创建实例带参数
      // 使用基于超快速滚动的方法。
      // 这是推荐的策略。
      var erdUltraFast = elementResizeDetectorMaker({
        strategy: "scroll",
        callOnAdd: true, //callOnAdd选项,用于确定在添加侦听器时是否应调用它们。默认为true。
        //如果为true,则确保在添加侦听器后将对其进行调用。如果为false,则在添加侦听器时将不保证其
        //被调用(不会阻止其被调用)
        debug: true,
      });
      //监听class为staticNextMain的元素 大小变化
      var self = this;
      //侦听元素的调整大小事件,并使用元素作为调整大小事件的参数来调用侦听器函数。传递给函数的选项将
      //覆盖实例选项
      erd.listenTo(document.getElementById("echartsWarp"), function (element) {
        //今日车速
        self.speedChartsApi();
      });
    },
      //今日车速
    speedChartsApi() {
      // 基于准备好的dom,初始化echarts实例
      this.$nextTick((_) => {
        const dom = document.getElementById("speeds");
        dom.style.width = dom.parentNode.parentNode.clientWidth + "px";
        // let myChart = this.$echarts.init(document.getElementById("speeds"));
        let myChart = this.$echarts.init(dom);
        // 绘制图表
        myChart.setOption({
          title: {
            text: "2022-01-14",
            left: "50px",
            textStyle: {
              color: "#666666", //颜色
              fontStyle: "normal", //风格
              fontWeight: "normal", //粗细
              fontFamily: "Microsoft yahei", //字体
              fontSize: 16, //大小
              align: "center", //水平对齐
            },
          },
          legend: {
            data: ["历史车速"],
          },
          tooltip: {
            trigger: "axis",
          },
          grid: {
            left: "3%",
            right: "4%",
            bottom: "3%",
            containLabel: true,
          },
          xAxis: {
            type: "category",
            boundaryGap: false,
            data: [
              "06:15",
              "07:15",
              "08:15",
              "09:15",
              "10:15",
              "11:15",
              "12:15",
              "13:15",
              "14:15",
              "15:15",
              "16:15",
              "17:15",
              "18:15",
              "19:15",
              "20:15",
              "21:15",
              "22:15",
              "23:15",
            ],
          },
          yAxis: {
            type: "value",
          },
          series: [
            {
              data: [
                820, 932, 901, 934, 1290, 1330, 1320, 2344, 234, 123, 222, 111,
                333, 345, 1234, 234, 5678, 234,
              ],
              name: "历史车速",
              type: "line",
              smooth: true, //平滑
              color: "#24C2DC",
              stack: "Total",
              areaStyle: {
                color: {
                  type: "linear",
                  x: 0,
                  y: 0,
                  x2: 0,
                  y2: 1,
                  colorStops: [
                    {
                      offset: 0,
                      color: "#7CE2D8", // 0% 处的颜色
                    },
                    {
                      offset: 1,
                      color: "#E9FAF8", // 100% 处的颜色
                    },
                  ],
                  global: false, // 缺省为 false
                },
              },
            },
          ],
        });
        myChart.resize();
        setTimeout(function () {
          window.addEventListener('resize', () => {
            myChart.resize();
          })
        }, 200);
      });
    },
    }
    }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

echarts自适应父级盒子宽度 的相关文章

  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • Android 设备上的 PhoneGap 蓝牙插件

    我一直在尝试让 PhoneGap 工作的蓝牙插件 但我似乎不知道哪里出了问题 首先 我的测试设备是 Galaxy S3 GT 19305T 应用程序是使用PhoneGap CLI http docs phonegap com en 3 0
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 尝试将布尔 C# 变量传递给 javascript 变量并将其设置为 true

    在我的 aspx 页面中 我将布尔变量 C 传递给需要布尔类型的 javascript 函数 但遇到了问题 但是 C 变量返回 True 而 javascript 不喜欢大写 myjavascript 如果我将 c 变量转换为字符串 那么我
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • Javascript 纪元时间(以天为单位)

    我需要以天为单位的纪元时间 迄今为止 我已经看到过有关如何翻译它的帖子 但几天后就没有了 我对纪元时间很不好 我怎么能得到这个 我需要以天为单位的纪元时间 我将解释为您想要自纪元以来的天数 纪元本身是第 0 天 或第 1 天的开始 无论您如
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • 前端面试高频精讲(二)Vue篇

    watch 和 computed 的区别 watch 是监听 支持异步操作 内部有 immediate deep handle三个属性 当一条数据影响多条数据时 使用 watch 常见的就是搜索 computed 是计算属性 能够缓存 内部
  • SpringBoot自动配置-切换内置web服务器

    切换内置web服务器 springboot的web环境中默认使用tomcat作为内置服务器 其实springboot提供了4中内置服务器供我们使用 我们可以方便切换
  • 通讯软件006——分分钟学会Citect通讯配置

    本文介绍如何利用Citect实现上位机与设备之间的通讯 通讯资源请登录网信智汇 以下是典型的Citect通讯原理图 IOServer IO服务器 对应Citect节点 Board 在IO服务器上创建虚拟的通讯板 1个IO服务器可以创建多个通
  • C#多线程(四)——Timer的使用

    1 Timer类的作用是设置一个定时器 定时执行用户指定的
  • typora主题配置:公众号一键排版

    typora是一个非常易用且免费的markdown编辑器 是我最常用的文档编辑器 它支持实时渲染 不用打开两个窗口 源码窗口和预览窗口 真正实现了沉浸式写作 所谓所见即所得 它的界面简洁 操作简单 非常容易上手 这里就不介绍了 本文主要介绍
  • (三)2.自动控制原理 Time domain analysis and correct 二阶系统动能特性

    上面讲完了最简单的一阶系统动态性能指标 下面说说二阶的 1 二阶系统的标准形式 二阶系统的典型结构 由这个图 我们可以轻松算出他的开环传递函数 增益 闭环传递函数和增益 这里不手打了 在写二阶传递函数时 我们一般把它写成首一形 传递函数依然
  • WEB-5-TCP / IP协议

    TCP IP协议 一 应用层 二 传输层 1 UDP 协议 1 协议格式 2 特点 2 TCP 协议 1 协议格式 3 TCP 中的核心机制 1 确认应答机制 2 超时重传机制 3 连接管理机制 4 滑动窗口 5 流量控制 6 拥塞控制 7
  • Source Insight 4.0安装教程(PS:附安装包及卸载重新安装等注意事项)

    目录 一 Source Insight 4 0安装包 二 删除配置文件 初次安装忽略此步骤 1 清除注册表信息 2 删除全局配置信息 三 安装步骤 1 解压 2 安装 3 替换 4 破解 5 安装提示unable to open or cr
  • windows10 中英文切换状态无法显示解决办法

    菜鸟的电脑很早之前就有这个中英文状态无法显示的毛病 菜鸟一只想解决 但是没有去弄 前几天 菜鸟发现下载一个其他输入法 电脑自带的输入法的中英文切换就会自己出来 但是好景不长 这是治标不治本 今天菜鸟电脑又显示不出来中英文切换了 于是上网搜索
  • STM32程序死在HardFault_Handler的分析和解决

    最近开发STM32F070F6P6项目 发现程序老是运行不了 仿真发现 程序总是死在HardFault Handler 程序总是死在第二个初始化函数里面 上网查询资料发现 STM32出现HardFault Handler故障的原因主要有两个
  • 中国的互联网技术有多牛逼?

    中国的电商 网约车 共享单车 外卖等都居于全球第一 物流配送效率全球第一 表面上看起来这些都是互联网技术 在全球居于领先地位 然而古怪的是至今为止中国互联网唯一走向世界的只有Tik Tok 在中国以外的市场 互联网还是由谷歌 亚马逊等美国企
  • Web自动化测试流程:从入门到精通,帮你成为测试专家!

    Web应用程序在今天的软件开发中占据着越来越重要的地位 保证Web应用程序的质量和稳定性是非常必要的 而自动化测试是一种有效的方法 本文将介绍Web自动化测试流程 并提供代码示例 步骤一 选取测试工具 选择适合自己团队的自动化测试工具是很重
  • 如何生成1亿个手机号码?Python来教你。真实的面试题哦。

    案例解析 最近在网上看到一个python的面试题目 如何用Python生成1亿个手机号码 我第一眼看到的时候心想 这个还不简单 直接 random randint 1 999999999999 就完事了 但是马上就发现了这其中的错误 这个是
  • sql注入系列之Sqli-labs(less-8)

    判断注入点 http 192 168 81 210 sqli Less 8 id 1 id等于1的时候正常id等于1 的时候页面有改变 因此可以判断可能存在注入 并且是布尔型盲注 判断注入类型 输入1 and 1 1和1 and 1 2发现
  • MySQL字符串截取:左截取、右截取、按关键字截取

    1 从左开始截取字符串 语法 SELECT LEFT str len str 被截取的字符串 len 截取长度 示例 SELECT LEFT TF 8220210412003 1 10 结果为 TF 8220210 2 从右开始截取字符串
  • python使用matplotlib创建三维图时隐藏坐标轴、网格、背景的方法

    使用下面的代码创建一条空间直线 import numpy as np import matplotlib pyplot as plt 创建一个空白画布 fig plt figure 创建一个子图 ax fig add subplot pro
  • [-] \Navicat-Cracker NavicatCrackerDlg.cpp:463 ->Please Patch first Or Specified RSA private key

    报错信息 Navicat Cracker NavicatCrackerDlg cpp 463 gt hinese Can t Generate Activation Code Keygen HINT Please Patch first O
  • 【Mo 人工智能技术博客】文本挖掘之LDA主题模型

    文本挖掘之LDA主题模型 作者 郑培 引言 主题模型是文本挖掘的重要工具 近年来在工业界和学术界都获得了非常多的关注 在文本挖掘领域 大量的数据都是非结构化的 很难从信息中直接获取相关和期望的信息 一种文本挖掘的方法 主题模型 Topic
  • ReLU,Sigmoid,Tanh,softmax,pipeline【基础知识总结】

    一 ReLU Rectified Linear Activation Function 1 优点 2 缺点 3 补充 1 Leaky ReLUs 2 参数化修正线性单元 PReLU 3 随机纠正线性单元 RReLU 二 Sigmoid 1
  • echarts自适应父级盒子宽度

    这里写自定义目录标题 效果 手动改变窗口大小 echarts实现自动适应父级盒子宽度 1 在vue中安装一个插件element resize detector 这是一个元素调整大小检测器 npm install element resize