[echarts]echarts的canvas画布大小与容器大小不一致的解决方案

2023-11-20

<div class="wrap" style="width:300px;height:300px;">
	<!-- echarts容器 -->
	<div id="echarts" style="width: 100%;height:100%;"></div>
</div>

场景描述:如上所示布局,我的echarts容器大小设置的宽高都是100%,为了让他占满整个wrap盒子;
解决方法1:所以设置echarts宽高为100%

设置宽高百分比之后如果canvas依然是100px或者没有占满图表容器:
解决方案2:利用resize设置width、height

// 获取wrap盒子的宽高
let width = document.getElementById('wrap').clientWidth()
let height= document.getElementById('wrap').clientHeight()
// 渲染echart图表的方法
drawchart() {
	let charts = echarts.init(document.getElementById('chart'))
	// 每次渲染之前都要clear一下,因为图表数据不是一成不变的,当重新调接口获取数据后就要重新渲染,如果不clear,有可能造成图表不变或图表叠加渲染等情况
	charts.clear()	
	let option = {
		...
	}
	// 一般这一步是写charts.resize(),让图表根据当前屏幕尺寸自适应,但是当前canvas画布大小与容器大小不一致,而容器大小已经设置了百分比,所以可以在resize里面手动设置宽高,使其占满整个wrap盒子
	charts.resize({
		//width: width,
		//height: height,
		// es6解构
		width,
		height
	})
	// 渲染图表
	charts.setOption(option)
}

解决方案3:利用v-if,这种情况多发在el-tab el-collapse

<el-collapse v-model="activeName" accordion>
	<el-collapse-item name="1">
		<ZLine
		  :chart="'cpuUse'+index"
		  :title="item?.metricName"
		  :data="item?.metricPoints"
		  :zoom="zoom"
		  :ref="setItemRef"
		  v-if="activeName === '1'"
		/>
	</el-collapse-item>
</el-collapse>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[echarts]echarts的canvas画布大小与容器大小不一致的解决方案 的相关文章

  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 我应该如何处理 Vuex 中的事件?

    我习惯使用全局事件总线来处理跨组件方法 例如 var bus new Vue Component A bus emit DoSomethingInComponentB Component B bus on DoSomethingInComp
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • Vue 组件方法未在动态 HTML 中的事件上运行

    我正在尝试动态创建一些 HTML 内容并将 Vue 组件方法绑定到元素上的事件 然而这不起作用 下面是问题的描述和测试用例的片段 重现问题的步骤 Click 点我1 观察控制台 Click 切换工具提示的弹出框 Click 点我2 观察控制
  • 每次页面重新启动时,Firebase.auth().currentUser 都会变为 null

    我正在使用 firebase 身份验证与 vue 应用程序 每次登录用户后重新启动页面时 currentUser 都会变为 null firebase auth signInWithEmailAndPassword this email t
  • 是否可以限制用户登录 Firebase 应用的设备数量?

    语境 我正在帮助使用 Vue 更新 Cordova 应用程序 以从基于订阅的收入 用户必须付费才能访问该应用程序 转变为基于广告的收入 用户可以免费注册 但将拥有他们在使用应用程序时显示的广告 我们想要做的一部分是限制用户可以拥有帐户的设备
  • 为什么在 vue 组件上输入另一个输入时,输入文件的值丢失了?

    我有两个组件 我的第一个组件 父组件 如下所示
  • Vue.js 动态图像路径未加载

    我试图在单个文件组件中动态加载图像 但收到错误消息 指出无法找到该模块 我想我正在尝试做同样的事情这个帖子 https stackoverflow com questions 40491506 vue js dynamic images n
  • 如何在 vuejs 中防止/停止点击传播

    我有一个递归列表 树 每个元素都有一个 click sayHello el id 现在的问题是 因为它是一个嵌套列表 例如 list element 0 01 list el 1 01 list el 2 01 list el 1 02 l
  • 使用 Javascript 在前端创建基本 URL(开发、API 和生产)

    无论开发和部署如何 如何制作适用于 http https localhost 端口和实际域的基本 url 我想创建一个可以在所有场景或条件下工作的基本 url 无论 http https 协议 端口 本地主机和实际域如何 无论是在开发中还是
  • 如何在Vue3中对setup的内部函数(不是返回)进行单元测试?

    我想这样测试 情况1 错误 无法监视内部属性 因为它不是函数 改为未定义 组件 vue export default setup function outer inner function inner do something for on
  • 如何修复套接字 io 中的 400 错误错误请求?

    我有一个前端应用程序 VUE JS 我有一个后端 Nest JS Vue JS 应用程序使用 vue socket io extended 库通过 websockets 从后端获取数据 当 Vue JS 应用程序启动时 我在浏览器中看到错误
  • Vue.js 更改 {{ }} 标签

    我想改变 something by 在 Vue js 中 我怎样才能实现这一点 这可能吗 我在 AngularJS 中寻找的等效项 var app angular module app function interpolateProvide
  • 未向导出的模块提供此上下文

    我对问题的提出感到不满意 受到鼓励提出改进建议 另外 请记住 由于无知 无知导致烦恼 我对问题的诊断可能有缺陷 对于那个很抱歉 In 这个答案 https stackoverflow com a 40893583 1525840建议使用th
  • 在新窗口中打开 VueJS 组件

    我有一个只有一页的基本 VueJS 应用程序 它不是 SPA 而且我不使用 vue router 我想实现一个按钮 单击该按钮时会使用我的 Vue 组件之一的内容执行 window open 函数 查看来自的文档window open ht
  • 如何将 Jitsi Meet 添加到 Vuejs

    我已在 public html 的正文中加载了 jitsi meet 脚本 并且我有一个组件 如下所示
  • 个人Vue 3组件包缺少模板或渲染函数

    我最近将自己的 Vue 3 组件上传到 NPM 以供其他人使用 当在其他项目中使用它时 它会发出以下警告 Vue warn Component is missing template or render function at
  • 从组件传递数据

    我对 Vue 相当陌生 我正在尝试将数据从组件传递到视图 我不确定我是否在使用props正确的 我有一个对话框 当我保存时 我想将数据插入数据库 我也想重复使用addCustomer function 这就是为什么我没有将该函数放置在组件中
  • 在 Vue.js 中隐藏 div onclick

    以下 jQuery 的 Vue js 等价物是什么 btn click function hideMe hide jQuery 开箱即用 而 Vue js 则不然 要初始化 Vue js 组件或应用程序 您必须将该组件及其数据绑定到模板内的
  • Vue 3 Composition API 提供/注入在单文件组件中不起作用

    我正在使用 Composition API 在 VueJS 3 中创建一个库 我实现了提供 注入 如中所述docs https v3 vuejs org guide composition api provide inject html i

随机推荐

  • 16-MyCat

    一 Mycat概述 1 什么是Mycat 什么是Mycat Mycat是数据库中间件 所谓数据库中间件是连接Java应用程序和数据库中间的软件 为什么要用Mycat 遇到问题 Java与数据库的紧耦合 高访问量高并发对数据库的压力 读写请求
  • python selenium使用JS新建标签(new tab)与切换标签

    以下是通用操作 不建议用快捷键的方式新开tab 因为js是通用的 from selenium import webdriver driver webdriver Chrome 新建窗口 driver execute script windo
  • 【嵌入式开发基础】PL2303不支持win11及后续版本解决方法

    最近在使用PL2303这一块USB转串口后 在安装驱动时遇到如下问题 此PL2303驱动程序不支持WINDOWS 11及后续版本 请安装正确驱动程序 解决方法 下载旧版本的PL2303驱动然后安装替换 PL2303 Prolific Dri
  • C语言二分法查找算法

    二分查找算法 折半查找算法
  • echarts饼状图mysql_echarts饼状图位置设置

    ReactNative环境配置 参考链接 Windows系统安装React Native环境 windows下React Native Android 环境搭建 在Windows下搭建React Native Android开发环境 转载
  • Qt6.2.3 QWebEngineView 咋就默认无痕浏览模式了?

    最近项目从Qt5迁移到Qt6 有若干不兼容或者变动的地方 虽谈不上什么血泪史 但是一天内做了几十处的兼容性处理 好在项目不大 也是挺累人的 本文重点说说QWebEngineView 咋就默认变成无痕处理模式了 如何咱们如何取消无痕模式 自定
  • Linux安装node

    Linux安装node 一 下载准备 1 准备 2 下载wget 可以直接下载 也可以点击链接寻找下载 3 安装wget 二 安装 1 准备 2 下载 3 解压 4 配置 5 测试 一 下载准备 linxu安装node可以直接去官网下载 或
  • 用C++写一个ChatGPT

    要用 C 语言写一个 ChatGPT 需要执行以下步骤 了解 ChatGPT 是什么 ChatGPT 是一种自然语言生成模型 能够在聊天场景中生成人类语言的文本 安装需要的软件 需要安装 C 语言编译器 如 GCC 或者 Visual C
  • 【C++从0到1】C++入门(上篇)类入门篇

    c 入门必看 前言 一 命名空间 二 缺省函数 三 函数重载 3 1常见使用 3 2重载底层实现 3 3返回值不纳入重载原因 四 extren C 五 引用 5 1常见使用 5 2临时变量的作用 5 3引用返回常见错误 5 4指针与引用 六
  • Golang 内存对齐视频

    https www bilibili com video BV1Ja4y1i7AF 简而言之 就是注意写代码的时候要把相同类型的元素放在一起 更进一步需要自己将结构体配对为32位或64位的整数倍 有助于减少额外空间消耗
  • java数据库实例_Java连接各种数据库的实例

    转自 CSDN此文中的代码主要列出连接数据库的关键代码 其他访问数据库代码省略 1 Oracle8 8i 9i数据库 thin模式 Class forName oracle jdbc driver OracleDriver newInsta
  • SQL修改表的列

    1 修改列的数据类型 要修改列的数据类型 请使用以下语句 ALTER TABLE table name ALTER COLUMN column name new data type size 新数据类型必须与旧数据类型兼容 否则 如果列具有
  • 程序员孔乙己

    软件园的格局自与别处是有所区别的 高矮不同的写字楼里 排列着整齐的格子间 放眼望去到处都是格子衫 双肩包 还有那稀疏的头发 园区每一栋大楼的入口处 都有一个超大前台 清洁的铮亮 散发着光芒 桌上零散的堆放着办公品 边上隔了一间咖啡馆 顺带售
  • background-position和雪碧图(CSS Sprites)用法

    background position属性使用频率非常高 大量的网站为了减少http请求数 会将大量的图片图片合成一张雪碧图 Sprite 来使用 雪碧图的使用就是通过控制background position属性值来确定图片呈现的位置 不
  • C++ StrCmpLogicalW文件名排序

    打开资源管理器 文件列表如下 搜索文件列表 include
  • Vue项目的部署(服务器)

    Vue项目的部署 服务器 前几天帮朋友写了一个可以动态查看地点温度的前端项目 目前已经部署上线了 访问链接点这里 服务器是朋友的 倒时候打不开会很正常 说不定又使用服务器玩大数据项目去了 效果图 图一 图二 当然 温度也都是实时跟新的 而且
  • MATLAB小技巧(20)矩阵分析--主成分回归

    MATLAB小技巧 20 矩阵分析 主成分回归 前言 一 MATLAB仿真 二 仿真结果 三 小结 前言 MATLAB进行图像处理相关的学习是非常友好的 可以从零开始 对基础的图像处理都已经有了封装好的许多可直接调用的函数 这个系列文章的话
  • maven的resources介绍

    在开发maven项目时 一般都会把配置文件放到src main resources目录下 针对这个目录 maven的resources对其进行单独的配置 resources配置一般如下
  • reactJS 干货(reactjs 史上最详细的解析干货)

    一 State和 Props state是状态机 应该包括 那些可能被组件的事件处理器改变并触发用户界面更新的数据 譬如需要对用户输入 服务器请求或者时间变化等作出响应 不应该包括 计算所得数据 React组件 在render 里使用pro
  • [echarts]echarts的canvas画布大小与容器大小不一致的解决方案

    div class wrap style width 300px height 300px div style width 100 height 100 div div 场景描述 如上所示布局 我的echarts容器大小设置的宽高都是100